Lakhan Aanjana Ответов: 3

система не может найти указанный файл


Здравствуйте пожалуйста помогите мне я получаю ошибку
она-мой код.

public string RunExternalExe(string filename, string arguments = null)
       {
           var process = new Process();

           process.StartInfo.FileName = filename;
           if (!string.IsNullOrEmpty(arguments))
           {
               process.StartInfo.Arguments = arguments;
           }

           process.StartInfo.CreateNoWindow = true;
           process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
           process.StartInfo.UseShellExecute = false;

           process.StartInfo.RedirectStandardError = true;
           process.StartInfo.RedirectStandardOutput = true;
           var stdOutput = new StringBuilder();
           process.OutputDataReceived += (sender, args) => stdOutput.Append(args.Data);

           string stdError = null;
           try
           {
              // process.Start("rtmpdump.exe");
               System.Diagnostics.Process.Start("rtmpdump", filename);
              // Process.Start(filename);
               process.BeginOutputReadLine();
               stdError = process.StandardError.ReadToEnd();
               process.WaitForExit();
           }
           catch (Exception e)
           {
               throw new Exception("OS error while executing " + Format(filename, arguments) + ": " + e.Message, e);
           }

           if (process.ExitCode == 0 || process.ExitCode == 2)
           {
               string yes = "yes";

               return yes;
           }
           else
           {


               return "no";
           }
       }

       private static string Format(string filename, string arguments)
       {
           return "'" + filename +
               ((string.IsNullOrEmpty(arguments)) ? string.Empty : " " + arguments) +
               "'";
       }

3 Ответов

Рейтинг:
26

Lakhan Aanjana

решили проблему м


string currentLocation = AppDomain.CurrentDomain.BaseDirectory;
           string[] s=  currentLocation.Split('b');
           string final = s[0] +"b"+ s[1] +"b"+ s[2];

          
         string rtmpDump = Path.Combine(final, "Tool\\Rtmpdump\\rtmpdump.exe");


Рейтинг:
20

♥…ЯҠ…♥

Привет Лакхан,

Ошибка возникает в системе.Диагностика.Процесс.Start("rtmpdump", filename); line?
Если это так, то файл, к которому вы пытаетесь получить доступ из пути, не является допустимым, так как сама ошибка является самоописательной.....

Предложение: проверьте наличие файла в пути вручную через проводник.
Я думаю, что код c# не будет обвинять вас без необходимости ;-)

Надеюсь, это вам немного поможет.

С уважением,
РК


[no name]

да, вы правы, но как получить путь это мой текущий путь, как получить этот путь с помощью кода.....
C:\Users\Om\Documents\Visual студия 2010\проекты\мультимедиа URL-адрес зонда\1.0 мультимедиа зонд URL-адрес 1.0\Tool\Rtmpdump\rtmpdump.exe

Рейтинг:
2

OriginalGriff

Две вещи:
1) Убедитесь, что "rtmpdump" установлен, доступен и находится на системном пути: откройте командную строку, введите "rtmpdump" и нажмите клавишу ENTER. Он работает? Подозреваю, что нет...
2) Почему вы создаете экземпляр процесса, а затем полностью игнорируете его?


[no name]

спасибо.
да вы правы пожалуйста прочтите мой вышеприведенный комментарий?