Processus.Start(): Le système ne peut pas trouver le fichier spécifié, mais mon chemin d'accès au fichier semble être légitime

C'est ahurissant mon esprit. En utilisant le code suivant:

Process du = new Process();          

string cmdPath = System.IO.Path.Combine(Environment.SystemDirectory, "du.exe");
Debug.WriteLine(cmdPath);

ProcessStartInfo info = new ProcessStartInfo(cmdPath);
info.CreateNoWindow = true;

info.Arguments = arguments;            
info.UseShellExecute = false;

info.RedirectStandardOutput = true;
du.StartInfo = info;
du.EnableRaisingEvents = true;
du.OutputDataReceived += responseParser;

du.Start();
du.BeginOutputReadLine();
du.WaitForExit();

Je l'exécuter, et j'obtiens:

Exception Non Gérée: System.ComponentModel.Win32Exception: Le système ne peut pas trouver le fichier spécifié

si la valeur de sortie de cmdPath est C:\Windows\system32\du.exe!

et bien sûr, si je viens de taper le contenu de cmdPath dans une invite de commande, il fonctionne du.exe et me donne les informations d'utilisation.

Aussi, si je remplace le chemin de commande avec juste "du.exe" et mettez le du.exe dans le répertoire de travail, tout fonctionne très bien. Mais je veux faire référence l'un à l'emplacement du système.

Donc, ce qui se passe? Aussi loin que je peux dire, j'ai un fichier légitime prescripteur, mais pourquoi ne pas Process.Start() l'exécuter? Ce code de base est également l'exécution de plusieurs autres programmes et l'obtention de leur sortie. Les autres, tous les beaux travaux, bien que du.exe est différent en ce qu'il est dans le répertoire system32. Le fait d'avoir quelque chose à faire avec elle?

Grâce

OriginalL'auteur whatsisname | 2012-04-27