linux ram构架 C#编译器,如何使用imdisk和C#创建RAM磁盘?

那么我以不同的方式解决了我的问题。不知何故,似乎imdisk没有按照它应该的方式格式化新的RamDisk,因此没有创建磁盘。一旦我删除格式化选项,磁盘就会被创建并需要格式化。因此,我开始另一个进程,并使用cmd命令“格式驱动器:”

对于任何人谁是有兴趣的,我的解决方案如下:

class RamDisk

{

public const string MountPoint = "X:";

public void createRamDisk()

{

try

{

string initializeDisk = "imdisk -a ";

string imdiskSize = "-s 1024M ";

string mountPoint = "-m "+ MountPoint + " ";

ProcessStartInfo procStartInfo = new ProcessStartInfo();

procStartInfo.UseShellExecute = false;

procStartInfo.CreateNoWindow = true;

procStartInfo.FileName = "cmd";

procStartInfo.Arguments = "/C " + initializeDisk + imdiskSize + mountPoint;

Process.Start(procStartInfo);

formatRAMDisk();

}

catch (Exception objException)

{

Console.WriteLine("There was an Error, while trying to create a ramdisk! Do you have imdisk installed?");

Console.WriteLine(objException);

}

}

/**

* since the format option with imdisk doesn't seem to work

* use the fomat X: command via cmd

*

* as I would say in german:

* "Von hinten durch die Brust ins Auge"

* **/

private void formatRAMDisk(){

string cmdFormatHDD = "format " + MountPoint + "/Q /FS:NTFS";

SecureString password = new SecureString();

password.AppendChar('0');

password.AppendChar('8');

password.AppendChar('1');

password.AppendChar('5');

ProcessStartInfo formatRAMDiskProcess = new ProcessStartInfo();

formatRAMDiskProcess.UseShellExecute = false;

formatRAMDiskProcess.CreateNoWindow = true;

formatRAMDiskProcess.RedirectStandardInput = true;

formatRAMDiskProcess.FileName = "cmd";

formatRAMDiskProcess.Verb = "runas";

formatRAMDiskProcess.UserName = "Administrator";

formatRAMDiskProcess.Password = password;

formatRAMDiskProcess.Arguments = "/C " + cmdFormatHDD;

Process process = Process.Start(formatRAMDiskProcess);

sendCMDInput(process);

}

private void sendCMDInput(Process process)

{

StreamWriter inputWriter = process.StandardInput;

inputWriter.WriteLine("J");

inputWriter.Flush();

inputWriter.WriteLine("RAMDisk for valueable data");

inputWriter.Flush();

}

public string getMountPoint()

{

return MountPoint;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值