我正在注册表中寻找特定的应用程序安装位置。由于InstallLocation没有我需要的值,因此我使用ImagePath来获取物理路径。但是我需要目录而不是完整路径。我得到的是:
(string) subkey.GetValue("ImagePath") =
"\"C:\\Program Files (x86)\\Some Folder\\Some Other Folder\\TheApplication.exe\""
使用
Path.GetDirectoryName((string) subkey.GetValue("ImagePath"))
引发以下错误。
路径中的非法字符。
这是由于多余的反斜杠引起的吗?我尝试用.Replace(@"\\", "\")
删除那些,但是没有运气。
答案 0 :(得分:1)
是引起Path.GetDirectoryName
引发异常的引号。您可以调用返回值的Trim
来删除周围的引号。
string path = ((string)subkey.GetValue("ImagePath")).Trim('"');
string directoryName = Path.GetDirectoryName(path);