2010-03-16 25 views
5

क्या यह जांचने का एक त्वरित तरीका है कि मेरे पास कोई पथ स्थानीय डिस्क पर है या नेटवर्क पर कहीं है? मैं सिर्फ यह देखने के लिए जांच नहीं कर सकता कि यह एक ड्राइव अक्षर बनाम यूएनसी है, क्योंकि यह मैप किए गए ड्राइव को स्थानीय रूप से गलत तरीके से पहचानता है। मुझे लगता है कि यह DirectoryInfo ऑब्जेक्ट में एक बूलियन होगा, लेकिन ऐसा लगता है कि यह नहीं है।जांचें कि कोई फ़ोल्डर स्थानीय या नेटवर्क संसाधन है .NET

मुझे इस चेक (एपीआई के माध्यम से) करने के लिए क्लासिक वीबी कोड मिला है, लेकिन अब तक .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

Noce, लेकिन "अगर (Path.IsPathRooted (di.FullName))" लगता है सामान्य रूप से काफी अनावश्यक, क्योंकि फुलनाम का बहुत उपयोग रूट रूट को वापस कर रहा है। – Nyerguds

1

आप यूएनसी-चेक के साथ शुरू कर सकते हैं। फिर, यदि यह यूएनसी पथ नहीं है, तो ड्राइव के लिए DriveInfo ऑब्जेक्ट बनाएं और DriveType देखें।

0

पथ में ड्राइव अक्षर से, ड्राइवइन्फो उदाहरण प्राप्त करें। यह एक DriveType संपत्ति है, जो हो सकता है: सीडीरॉम, फिक्स्ड, अज्ञात, नेटवर्क, NoRootDirectory, राम, हटाने योग्य या अज्ञात

संबंधित मुद्दे