C:
是我的电脑启动驱动器。
DirectoryInfo dirInfo;
dirInfo = System.IO.Directory.GetParent(@"C:"); // Case 1
dirInfo = System.IO.Directory.GetParent(@"C:\"); // Case 2
案例1:
dirInfo
不为空,dirInfo.FullPath
在我的机器上设置为“C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7”
案例2:
dirInfo
为空
如果path是根目录,则返回null
“C:”不被视为root。为什么不呢?
答案 0 :(得分:2)
Directory.GetParent只是一个字符串操作函数,它接受绝对或相对本地路径或UNC并返回绝对字符串。如果路径是相对路径,则使用当前工作目录。正如文档所述:
此方法返回的字符串包含路径中的所有字符,但不包括最后一个DirectorySeparatorChar或AltDirectorySeparatorChar。
这意味着如果您通过Application.EnableVisualStyles()
,该方法将返回c\
。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\c
是一个卷号,而不是一个路径。由于C:
未被识别为绝对路径或UNC路径,因此将其视为相对路径,就像C:
,c
或a
一样。在这两种情况下,返回值都将是当前工作目录。使用Visual Studio进行调试时,工作目录是Visual Studio的目录。