我有一个字符串包含一个可执行文件的路径,该文件也可能有也可能没有命令行参数。如何从字符串中提取没有参数的文件的路径?
例如:
"C:\Foo\Bar.exe"
"C:\Foo\Bar.exe /test"
"C:\Foo\Bar.exe {0}"
"C:\Foo\Bar.exe -snafu"
我试图打破字符串成路部分和参数的一部分。参数部分可能几乎是任何格式。但IO.Path函数假定字符串是一个没有争议的路径。例如,如果我称之为:
IO.Path.GetFileName(path)
它返回Bar.exe /test
,Bar.exe {0}
或Bar.exe -snafu
Windows可以明显地看出其中的差别,当我运行这个在命令提示符所以必须有某种方式来充分利用现有的功能。
如果需要的话,我可以在引号中围绕字符串的路径部分。但那么IO.Path
调用失败。例如:
? IO.Path.GetFileName("""C:\Windows\write.exe"" {0}")
引发一个参数异常:路径中的非法字符。
该路径始终是一个不间断的字符串,不是?我们不能用空格分隔它并取第一个标记吗? – Shoe
再看看'正则表达式'和'路径' – 2013-08-26 23:18:44
某些路径可能包含空格。例如'C:\ Program Files \ Microsoft Office \ Office15 \ WINWORD.EXE' –