我正在寻找一种解析具有空格的路径字符串的可靠方法
例如
"C:/Test has spaces/More Spaces.exe argument"
System.IO.Path.GetDirectoryName
有效(返回"C:/Test has spaces"
),但是System.IO.Path.GetFileName
返回"More Spaces.exe argument"
。我要获取.exe并拆分参数。
该字符串不是用双引号引起来的,所以我不能修改输入字符串。
答案 0 :(得分:0)
您应该在扩展名之后加上字符索引,并删除字符串的其余部分。 像这样:
string myString = "C:/Test has spaces/More Spaces.exe argument";
int index_Of_ext = myString.LastIndexOf("exe")
//including "exe"
+ 3;
string output = myString.Remove(index_Of_ext,
//starting remove
myString.Length - index_Of_ext);
//the rest of the string
这样,在输出字符串中,您会错过“ exe”(包括扩展名)之后的部分