如何从注册表项“ ImagePath”中正确提取目录?

时间:2018-12-04 20:35:38

标签: c# .net

我正在注册表中寻找特定的应用程序安装位置。由于InstallLocation没有我需要的值,因此我使用ImagePath来获取物理路径。但是我需要目录而不是完整路径。我得到的是:

(string) subkey.GetValue("ImagePath") = 
"\"C:\\Program Files (x86)\\Some Folder\\Some Other Folder\\TheApplication.exe\""

使用

Path.GetDirectoryName((string) subkey.GetValue("ImagePath"))

引发以下错误。

  

路径中的非法字符。

这是由于多余的反斜杠引起的吗?我尝试用.Replace(@"\\", "\")删除那些,但是没有运气。

1 个答案:

答案 0 :(得分:1)

是引起Path.GetDirectoryName引发异常的引号。您可以调用返回值的Trim来删除周围的引号。

string path = ((string)subkey.GetValue("ImagePath")).Trim('"');

string directoryName = Path.GetDirectoryName(path);