.NET: Как передать параметры командной строки с именем временного файла - PullRequest
1 голос
/ 16 сентября 2010

Это .NET 2.0 WinForms.У меня есть некоторый код, подобный этому

string str = Path.GetTempFileName();
Process p = new Process();
ProcessStartInfo psi = new ProcessStartInfo();
psi.Arguments = str
psi.FileName = <some executable >
p.StartInfo = psi;
p.Start();

Теперь при запуске процесса я получаю имя временного файла, говоря args[0].В Win XP это вызывает проблему, поскольку временный файл находится в C:\Documents and Settings\....Пространство вызывает проблему, поэтому args[0] равно C:\Documents.

Как я могу это исправить?Должен ли я просто поместить str в кавычки?Или я могу как-то игнорировать пробелы?

Ответы [ 2 ]

1 голос
/ 16 сентября 2010

Да, используйте кавычки.

0 голосов
/ 16 сентября 2010

Вы можете заключить путь в двойные кавычки или преобразовать путь в его короткое (8.3) представление, используя встроенную функцию GetShortPathName .

...