Аргументы процесса не работают в C#, но работают в cmd - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь передать в файл 2 пути и 1 строку, но это не работает, и я не знаю почему.

Когда это делается в CMD, он работает отлично.

Отладка приложения, в которое я пытаюсь передать аргументы, пути выглядят нормально, но я продолжаю получать странные последние ошибки, такие как «недопустимый дескриптор» или «ошибка общего доступа» (ссылка на параметр «Поделиться» в CreateFile API) или «недопустимый параметр» , но я не получаю ничего из этого через 5 секунд, когда пытаюсь в CMD

Вот как я загружаю пути:

первый:

OpenFileDialog FileDlg = new OpenFileDialog();

                if (DialogResult.OK == FileDlg.ShowDialog()) {
                    FilePath = FileDlg.FileName;
                }

второй:

 SaveFileDialog SaveDlg = new SaveFileDialog();

                if (DialogResult.OK == SaveDlg.ShowDialog()) {
                    FileOutPath = SaveDlg.FileName;
                }

запуск процесса:

      string Args = FilePath + " " + FileOutPath + " " + "1";
        Process Proc = new Process();
        Proc.StartInfo.FileName = FileToStart;
        Proc.StartInfo.Arguments = Args;
        Proc.StartInfo.UseShellExecute = false;
        Proc.StartInfo.RedirectStandardOutput = true;

        Proc.Start();

        StreamReader OutRead = Proc.StandardOutput;
        string Out = OutRead.ReadToEnd();

        Proc.WaitForExit();
        Proc.Close();

        LogRichTextBox.Text = Out;

Первоначально это был просто вызов Process.Start("file", "args"), который тоже не работал.

первый путь - это локальный файл , поэтому я передаю не абсолютный путь, а только имя исполняемого файла («ab c .exe»), а второй - абсолютный путь («C: \ Users \ X \ Destkop \ cba.exe ")

Что мне не хватает?

1 Ответ

0 голосов
/ 01 августа 2020

Сначала я бы попробовал заключить оба имени файла в кавычки:

string Args = "\"" + FilePath + "\" \"" + FileOutPath + "\" 1";

Таким образом, когда вы его передадите, это будет выглядеть примерно так:

"{FilePath}" "{FileOutPath}" 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...