J'ai essayé les réponses ci-dessus, malheureusement, il n'a pas été simple car il semble ...
La première réponse, en utilisant l'objet de gestion ressemble à la bonne façon de le faire, mais malheureusement, la méthode « Format » est pas pris en charge dans Windows XP.
La deuxième et la troisième réponses fonctionnent mais nécessitent que l'utilisateur confirme l'opération.
Pour ce faire sans aucune intervention de l'utilisateur, j'ai utilisé la deuxième option avec la redirection des flux d'entrée et de sortie du processus. Lorsque je redirige uniquement le flux d'entrée, le processus a échoué.
Voici un exemple:
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();
}
}
Considérant que la question est étiquetée C# et .net, je suppose que cela doit être fait par programme. Par conséquent, cette question n'appartient pas au super-utilisateur (il y a eu un vote serré pour cela). – balpha
Comment voulez-vous dire "appartenir au super-utilisateur"? –
balpha a indiqué _not_ sur le superutilisateur. Voir le bas de cette page pour SU –