2011-02-18 16 views
22

如何知道給定目錄是否爲根驅動器?C#如何知道給定的路徑是否代表根驅動器?

(除了檢查,如果其路徑等於 「A:」, 「B:」, 「C:」 等)

+0

你想知道給定的目錄是否是某個分區的根目錄,對吧? – 2011-02-19 00:22:42

+0

是的,這就是我要求的。 – asmo 2011-02-24 03:23:35

回答

30

檢查DirectoryInfo.Parent爲空或不是

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

您還可以使用DirectoryInfo.Root獲取根目錄;

3

嘗試this

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

他已經有了路,他想看看它是不是根,不是根。 – 2011-02-18 23:24:03

+3

@Titan:如果獲取根返回相同的字符串,那麼它是一個根。這可能不是最好的方法,但它是有效的。 – 2011-02-19 00:16:31

+0

@這是真的,但效率要低得多。它不僅需要使用2個字符串,還要比較它們。 – 2011-02-19 05:13:37

1

這裏的另一種方式,我發現:

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

給出的路徑代表了當前系統的邏輯驅動器之一時,此人真正檢查。

2

而且這裏的另一種方式,我發現:

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

如果這個函數返回true,那麼就意味着給定的路徑代表根驅動器!

相關問題