2010-03-16 7 views
5

Bulunduğum bir yolun yerel bir diskte mi yoksa ağda mı olduğunu kontrol etmenin hızlı bir yolu var mı? Yalnızca UNC'ye karşı bir sürücü mektubu olup olmadığını kontrol edemiyorum çünkü bu, eşlenen sürücüleri yerel olarak yanlış bir şekilde tanımlar. DirectoryInfo nesnesinde bir boole olacağını varsaydım, ancak öyle değil.Bir klasörün yerel veya ağ kaynağının .NET olup olmadığını kontrol edin

Bu denetimi (bir API aracılığıyla) yapmak için klasik VB kodu buldum, ancak şu ana kadar .NET için bir şey yok.

cevap

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

Noce, ancak "(Path.IsPathRooted (di.FullName)) eğer" görünüyor Genelde oldukça gereksizdir, çünkü FullName'in kullanımı köklü bir yol döndürüyor. – Nyerguds

1

UNC kontrolüyle başlayabilirsiniz. Daha sonra, bir UNC yolu değilse, sürücü için bir DriveInfo nesnesi oluşturun ve DriveType'u kontrol edin.

0

Yoldaki sürücü harfinden bir DriveInfo örneği alın. Bu DriveType olabilir özelliğine sahiptir: Bilinmeyen CDRom, Sabit, Bilinmeyen, Ağ, NoRootDirectory Ram, Çıkarılabilir veya

İlgili konular