我想使用参数:filename。
运行一个进程 string parms = filechooser.Filename ;
psi = new ProcessStartInfo("timidity", parms);
当用户选择带有一些空格的文件名时,会出现问题。 我可以用“”?
传递参数由于
答案 0 :(得分:4)
您可以将值换成双引号:
string parameters = string.Format("\"{0}\"", filechooser.Filename);
psi = new ProcessStartInfo("timidity", parameters);
答案 1 :(得分:3)
这应该可以正常工作,空间也会通过。
但是,如果你想要转义文件名(取决于正在启动的应用程序,即胆怯),请执行以下操作:
string parms = string.Format("\"{0}\"", filechooser.Filename);
psi = new ProcessStartInfo("timidity", parms);
这将根据格式\"{0}\"
创建一个字符串。 \"
成为引号("
),{0}
将替换为格式字符串后面的第一个参数,即文件名。
您可以使用“开始”,“运行”功能或命令提示符(cmd.exe
)进行尝试。输入timidity然后输入完整的文件名,用空格,引号,看看是否有效:
timidity "my filename"
答案 2 :(得分:2)
试试这个。
string parms = filechooser.Filename ;
psi = new ProcessStartInfo("timidity", "\"" + parms + "\"");
答案 3 :(得分:1)
反斜杠是你的朋友:
"\"timidity\""