2010-03-16 58 views
5

是否有快速檢查我擁有的路徑是在本地磁盤上還是在網絡上的某個位置?我不能檢查它是否是一個驅動器號與UNC,因爲這會錯誤地將映射驅動器標識爲本地驅動器。我認爲這將是一個在DirectoryInfo對象中的布爾值,但它似乎不是。檢查文件夾是否是.NET中的本地或網絡資源

我發現經典的VB代碼來做這個檢查(通過一個API),但到目前爲止沒有.NET。

回答

6
   System.IO.DirectoryInfo di; 
       if (System.IO.Path.IsPathRooted(di.FullName)) 
       { 
        System.IO.DriveInfo drive = new System.IO.DriveInfo(System.IO.Path.GetPathRoot(di.FullName)); 
        if (drive.DriveType == System.IO.DriveType.Network) 
        { 
         // do something 
        } 
       } 
       else // shouldn't be reached 
       { 
        // relative path => local 
       } 
+2

諾斯,但 「如果(Path.IsPathRooted(di.FullName))」 似乎一般情況下是不必要的,因爲FullName的使用正在返回一個根路徑。 – Nyerguds 2013-04-11 07:39:49

1

您可以從UNC檢查開始。然後,如果它不是UNC路徑,則爲該驅動器創建一個DriveInfo對象並檢查DriveType

0

從路徑中的驅動器號中,獲取DriveInfo實例。這有DriveType屬性,它可以是:CD-ROM,固定的,未知的,網絡,NoRootDirectory,RAM,可移動,或未知