0

基本的に一連のファイルを 1 つの出力ファイルに連結するコードを作成しようとしています。

私のコードは次のとおりです

string[] destination = new string[this.lbFiles.Items.Count];
this.lbFiles.Items.CopyTo(destination, 0);
string result1 = ConvertStringArrayToString(destination);
result1 = result1.Remove(result1.Length - 3);
string outputfile = this.saveFileDialog1.FileName;
string copyarg = "copy /b " + result1 + quote + outputfile + quote;
System.Diagnostics.Process.Start("CMD.exe", copyarg);

つまり、基本的に result1 = 連結しようとしているすべてのファイルです。フルパスと引用符付き。そしてoutputfile =フルパスで使用したい出力ファイル名。

私の問題は、コードを実行するとファイルがコピーされますが、指定した出力ファイル名が使用されず、指定したパスではなく、プログラム exe が配置されているディレクトリにファイルが出力されることです。

何か助けはありますか?

4

1 に答える 1

1

そこに引用符がないか、スペースがないようです。result1 の最後の 3 文字 (" +" であると想定) を削除し、すぐに引用符を追加しています。これにより、 が生成されcopy /b "d:\test1.ac3" + "d:\test2.ac3""d:\output.ac3"ます。

これはエラーになると思いますが、そうでない場合は、確かに奇妙な動作が発生する可能性があります。特に、ファイル名に実際にスペースが含まれている場合。

于 2012-11-08T18:48:30.703 に答える