Я пытаюсь открыть место на жестком диске для хранения некоторых файлов лицензий.
До сих пор я пробовал diskpart.Это выглядит простым в использовании, но я не смог отформатировать нераспределенный раздел с помощью diskpart.Я нашел способ создать нераспределенное пространство, но мне нужно отформатировать его для использования (поправьте меня, если я ошибаюсь. Я действительно новичок в работе с разделами диска)
Это мой метод выбораправильный объемЯ взял это отсюда, и это работает хорошо.Ссылка: C # и diskpart: как выбрать по метке диска, а не по номеру? и код, который я использую, таков:
public int GetIndexOfDrive(string drive)
{
drive = drive.Replace(":", "").Replace(@"\", "");
// execute DiskPart programatically
Process process = new Process();
process.StartInfo.FileName = "diskpart.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.StandardInput.WriteLine("list volume");
process.StandardInput.WriteLine("exit");
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
// extract information from output
string table = output.Split(new string[] { "DISKPART>" }, StringSplitOptions.None)[1];
var rows = table.Split(new string[] { "\n" }, StringSplitOptions.None);
for (int i = 3; i < rows.Length; i++)
{
if (rows[i].Contains("Volume"))
{
int index = Int32.Parse(rows[i].Split(new string[] { " " }, StringSplitOptions.None)[3]);
string label = rows[i].Split(new string[] { " " }, StringSplitOptions.None)[8];
if (label.Equals(drive))
{
return index;
}
}
}
return -1;
}
как только я получу индекс, я запускаю свойсобственный код для сжатия выбранного тома с этим кодом:
Process DiskPartProc = new Process();
DiskPartProc.StartInfo.CreateNoWindow = true;
DiskPartProc.StartInfo.UseShellExecute = false;
DiskPartProc.StartInfo.RedirectStandardOutput = true;
DiskPartProc.StartInfo.FileName = @"C:\Windows\System32\diskpart.exe";
DiskPartProc.StartInfo.RedirectStandardInput = true;
DiskPartProc.Start();
DiskPartProc.StandardInput.WriteLine("select volume "+index);
DiskPartProc.StandardInput.WriteLine("shrink desired=16 minimum=16");
DiskPartProc.StandardInput.WriteLine("exit");
string output = DiskPartProc.StandardOutput.ReadToEnd();
DiskPartProc.WaitForExit();
Как только я это сделаю, результат будет следующим:
http://prntscr.com/mjwg0t (только изображение нераспределенного раздела)
Я могу щелкнуть по нему правой кнопкой мыши и создать новый простой том из этого нераспределенного раздела, но я должен сделать это с помощью команд diskpart.Может кто-нибудь сказать мне, какие команды diskpart я должен использовать, чтобы достигнуть этого?И как я могу получить подробную информацию об этом томе?