N'Processus.StartInfo.Nom de fichier accepter les noms de fichier longs?

Dirait qu'il ne l'est pas.

Si je convertir le nom du fichier à sa valeur courte, alors le Processus.Start() fonctionne.

Process runScripts = new Process();
runScripts.StartInfo.FileName = @"C:\long file path\run.cmd";
runScripts.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
runScripts.StartInfo.UseShellExecute = true;
runScripts.StartInfo.RedirectStandardOutput = false;
runScripts.Start();

Le code ci-dessus échoue. Mais...

Process runScripts = new Process();
runScripts.StartInfo.FileName = @"C:\short\file\path\run.cmd";
runScripts.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
runScripts.StartInfo.UseShellExecute = true;
runScripts.StartInfo.RedirectStandardOutput = false;
runScripts.Start();

réussit.

J'ai réussi à contourner ce problème en convertissant le long nom de chemin d'accès à un chemin d'accès court.
Mais je suis un peu surpris de trouver cela.
Toutes les raisons, ou d'arrière-plan sur cette info?

Grâce.

mise à Jour de 1
Microsoft .NET Framework Version 2.0.50727

Quelle est la version de l' .NET framework exécutez-vous?
Microsoft .NET Framework Version 2.0.50727
Qui est dépassé. Vous devez mettre à niveau.
Mise à niveau pour résoudre un dev problème? PAS de. Pas si vous voulez que votre code à exécuter pour les autres .NET 2.0 utilisateurs. Mise à niveau pour l'utiliser plus tard? Oui.

OriginalL'auteur Thushan | 2009-03-05