habe ich versucht, die oben genannte Antworten, leider ist es nicht so einfach war, wie es ...
Die erste Antwort scheint, mit dem Management-Objekt wie die richtige Art und Weise sieht so zu tun, aber leider ist die „Format“ Methode ist nicht unterstützt in Windows XP.
Die zweite und die dritte Antworten arbeiten aber muss der Benutzer den Vorgang bestätigen.
Damit ich von dem Benutzer ohne Intervention zu tun, um die zweite Option verwendet, um die Eingangs- und Ausgangsströme des Prozesses mit umleitet. Wenn ich nur den Eingabestream umleite, ist der Prozess fehlgeschlagen.
Es folgt ein Beispiel:
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
if (d.IsReady && (d.DriveType == DriveType.Removable))
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "format";
startInfo.Arguments = "/fs:FAT /v:MyVolume /q " + d.Name.Remove(2);
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardInput = true;
Process p = Process.Start(startInfo);
StreamWriter processInputStream = p.StandardInput;
processInputStream.Write("\r\n");
p.WaitForExit();
}
}
Bedenkt man, dass die Frage C# markiert und .net, ich nehme an, dies programmatisch zu tun ist. Daher gehört diese Frage nicht zum Superuser (es gab eine enge Abstimmung dafür). – balpha
Wie meinst du "gehören auf Superuser"? –
balpha sagte _not_ auf Superuser. Siehe unten auf dieser Seite für SU –