【发布时间】:2013-08-24 07:55:13
【问题描述】:
我正在从注册表中读取启动项并检查关联文件是否存在。
注册表值示例:
"C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\amd64\CLIStart.exe" MSRun
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\amd64\CLIStart.exe MSRun
"C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\amd64\CLIStart.exe" /parameter
"C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\amd64\CLIStart.exe" -paramaeter1 -parameter2
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\amd64\CLIStart.exe -MSRun /parameter
"C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\amd64\CLIStart.exe -MSRun /parameter"
如何排除参数?我只想要C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\amd64\CLIStart.exe 部分。
操作系统如何实现这种分离?
【问题讨论】:
-
我认为没有内置的方法可以做到这一点。我要做的是首先去掉引号,然后删除
Path.GetExtension,删除扩展名中第一个空格之后(包括)后的所有内容,然后再将Path.Combine重新组合在一起。 -
@Corak 当注册表值类似于 "C:\Program Files (x86)\WinPcap\rpcapd.exe" -d -f "C:\Program Files (x86)\WinPcap\ rpcapd.ini"
-
好的,尝试再次去掉引号,然后用空格
string.Split。然后尝试如果第一个File.Exists,然后+= " " + second等等,直到File.Exists返回true。 - 或者如果它以引号开头,则查找下一个并取其间的内容。
标签: c# file parameters path