C# 从特定路径获取参数和文件名

C# 从特定路径获取参数和文件名,c#,C#,我试图从如下路径中提取参数和文件名: C:\Users\user\Desktop\foo.exe foo://action/bar 我试图使用Path.GetFileName,但由于该参数包含目录分隔符,因此它返回bar,而不是foo.exe 有没有办法获取参数和文件名?您可以从传递给Main方法的string[]args中获取命令行参数 或者您可以使用静态方法环境。GetCommandLineArgs使用LastIndexOf反向搜索字符串中的反斜杠,然后子字符串获取除此之外的所有内容: i

我试图从如下路径中提取参数和文件名:

C:\Users\user\Desktop\foo.exe foo://action/bar
我试图使用
Path.GetFileName
,但由于该参数包含目录分隔符,因此它返回
bar
,而不是
foo.exe


有没有办法获取参数和文件名?

您可以从传递给
Main
方法的
string[]args
中获取命令行参数


或者您可以使用静态方法
环境。GetCommandLineArgs

使用
LastIndexOf
反向搜索字符串中的反斜杠,然后
子字符串
获取除此之外的所有内容:

int i = path.LastIndexOf(@"\");
return (i > -1 && i < path.Length) ? path.Substring(i + 1) : string.Empty;
int i=path.LastIndexOf(@“\”);
返回(i>-1&&i

如果需要分隔文件名和参数,请使用
IndexOf
查找空格或
Split
空格字符的结果。

我忘了提到,它是从文件加载的路径理想情况下,您计划使用此代码的操作系统不支持文件路径中的空格和文件路径中的向前/向后斜杠。。。我不知道有哪一个是真的(这个答案没有考虑Windows文件路径的有效值…并且Linux/Unix使用“/”作为路径分隔符-因此适用性受到限制),在Windows中,您可以通过在引号中添加参数或路径名来包含空格。如果发生这种情况,整个事情就会变得更加复杂。我可能最终会使用正则表达式,但我今天还没有开始喝酒,所以我无法编写一个有效的正则表达式示例。(我假设Windows是因为“exe”扩展名…)