【问题标题】:C# Exclude Parameters From File PathsC# 从文件路径中排除参数
【发布时间】: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


【解决方案1】:

这算不算家庭作业? 无论如何,这将达到想要的结果。

return yourPath.Trim('\"').Substring(0, yourPath.LastIndexOf(".exe") + 3);

【讨论】:

  • 但文件扩展名可能不同,它并不总是可执行文件。当注册表值类似于 "C:\Program Files (x86)\WinPcap\rpcapd.txt" -d -f "C:\Program Files (x86)\WinPcap\rpcapd.ini" 时,它会失败
  • "我只想要 C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static\amd64\CLIStart.exe 部分。"我假设您只想要由此判断的可执行文件。我会试着想一些事情(目前有点忙,可能需要一段时间),稍后会更新答案。
猜你喜欢
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 2016-07-04
相关资源
最近更新 更多