Я думаю, что проблема в том, что ваш Process
не настроен должным образом.
Ваш текущий код откроет файл .txt, используя средство открытия файлов .txt по умолчанию (поскольку вы указали procStart.UseShellExecute = true;
).затем установите procStart.Arguments = "mkdir TestDir";
Но на самом деле это вам не поможет, поскольку все, что произойдет, будет "mkdir TestDir"
, которые будут переданы в качестве аргументов командной строки для notepad.exe
.
То, что вы действительно хотите, это либо:
- Отдельный
ProcessStartInfo
с FileName
, установленным на cmd.exe
(и установленным Arguments = "/C mkdir Test"
) - Используйте метод
CreateDirectory()
напрямую.
Я бы предпочел # 2, поскольку он более четко показывает, что вы хотели бы сделать, но любой из них должен работать.
ОБНОВЛЕНИЕ : Если вам нужночтобы использовать опцию 1, вы должны использовать следующий код, чтобы увидеть, что идет не так:
Process userCommandProc = Process.Start(procStart);
userCommandProc.WaitForExit();
if (userCommandProc.ExitCode != 0)
{
// Something has (very likely) gone wrong
}
else
{
// Most likely working
}
Пара других замечаний:
- Этот процесс будет запущен на сервере,не клиентский компьютер.Если вам нужно последнее, вам не повезло, если вы хотите использовать веб-приложение.
- Этот вид обработки, вероятно, лучше оставить стандартному обработчику
.ashx
, чем веб-странице;загрузка страниц должна быть максимально быстрой.