C#如何知道给定路径是否代表根驱动器?

时间:2011-02-18 23:14:36

标签: c# directory root drive

如何知道给定目录是否为根驱动器?

(除了检查其路径是否等于“A:”,“B:”,“C:”等)

5 个答案:

答案 0 :(得分:31)

检查DirectoryInfo.Parent是否为空

DirectoryInfo d = new DirectoryInfo("");
if(d.Parent == null) { IsRoot = true; }

您也可以使用DirectoryInfo.Root;

获取根目录

答案 1 :(得分:6)

这比检查Parent属性要复杂得多。

Determining Whether a Directory Is a Mounted Folder

一种方法是查看GetVolumeNameForVolumeMountPoint是否成功。

当然,这对网络路径不起作用,确定网络驱动器是否代表分区的根目录可能无法远程实现。

答案 2 :(得分:5)

尝试this

if (Path.GetPathRoot(location) == location) {...}

答案 3 :(得分:2)

这也是我发现的另一种方式:

 public static bool IsLogicalDrive(string path)
 {
     return (new DirectoryInfo(path).FullName == new DirectoryInfo(path).Root.FullName;
 }

如果此函数返回true,则表示给定路径代表根驱动器!

答案 4 :(得分:1)

这是我发现的另一种方式:

public static bool IsLogicalDrive(string path)
{
    return Directory.GetLogicalDrives().Contains(path);
}

这个实际检查给定路径是否代表当前系统的逻辑驱动器之一。