Ошибка в команде «Копировать» в командной строке - PullRequest
0 голосов
/ 01 ноября 2011

Я объединяю видеофайлы в формате mpg с помощью команды «Копировать» в командной строке программно в C #. Я могу выполнить команду вручную в командной строке, и она отлично работает.

Copy /b D:\\ccc\\out0.mpg /b + D:\\ccc\\out1.mpg /b D:\\ccc\\bMPGVideo.mpg /b

Но когда я выполняю ту же команду программно, выдается ошибка.

strCmdText = "/K Copy /b D:\\ccc\\out0.mpg /b + D:\\ccc\\out1.mpg /b D:\\ccc\bigMPGVideo.mpg /b";
System.Diagnostics.Process p = new System.Diagnostics.Process();            
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = "CMD.exe";
p.StartInfo.Arguments = strCmdText;
p.StartInfo.RedirectStandardError = true;
p.Start();
MessageBox.Show(p.StandardError.ReadToEnd());

В окне сообщения отображается следующее сообщение

Неверный дескриптор
Неверное имя файла, имя каталога или тома
Неверный дескриптор
Неверный дескриптор

Может кто-нибудь, пожалуйста, помогите мне с этим?

1 Ответ

3 голосов
/ 01 ноября 2011

D:\\ccc\bigMPGVideo.mpg должно быть D:\\ccc\\bigMPGVideo.mpg.

РЕДАКТИРОВАТЬ - согласно комментариям:

// create target file
using (FileStream Tgt = File.Create (@"D:\ccc\bigMPGVideo.mpg") )
{
    // append out0.mpg to target
    using (FileStream Out0 = File.Open (@"D:\ccc\out0.mpg"))
    {
        Out0.CopyTo (Tgt);
    }
    // append out1.mpg to target
    using (FileStream Out1 = File.Open (@"D:\ccc\out1.mpg"))
    {
        Out1.CopyTo (Tgt);
    }
}
...