コマンドライン プログラムの GUI を作成しています。txtBoxUrls[TextBox] には、ファイル パスが 1 行ずつ入力されます。ファイル パスにスペースが含まれている場合、プログラムは正しく動作していません。プログラムを以下に示します。
string[] urls = txtBoxUrls.Text.ToString().Split(new char[] { '\n', '\r' });
string s1;
string text;
foreach (string s in urls)
{
if (s.Contains(" "))
{
s1 = @"""" + s + @"""";
text += s1 + " ";
}
else
{
text += s + " ";
}
}
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = @"wk.exe";
proc.StartInfo.Arguments = text + " " + txtFileName.Text;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
//Get program output
string strOutput = proc.StandardOutput.ReadToEnd();
//Wait for process to finish
proc.WaitForExit();
たとえば、txtBoxUrls に入力されたファイル パスが「C:\VS2008\Projects\web2pdf\web2pdf\bin\Release\Test Page.htm」の場合、プログラムは動作しません。二重引用符で囲まれたこのファイル パスは、Windows コマンド ライン (私は GUI を使用していません) で適切に機能します。解決策は何でしょうか。