2009-12-13 22 views

उत्तर

36

प्रयास करें निम्नलिखित

bool isDir = Directory.Exists(somePath) 

ध्यान दें कि यह वास्तव में आपको बता नहीं करता है तो एक निर्देशिका हालांकि मौजूद है। यह आपको बताता है कि हाल ही में किसी बिंदु पर एक निर्देशिका मौजूद थी जिसके लिए वर्तमान प्रक्रिया में कुछ उपाय था। जब तक आप निर्देशिका तक पहुंचने का प्रयास नहीं करते हैं, तब तक इसे आपकी प्रक्रिया को एक्सेस करने से रोकने के लिए पहले से ही हटाया जा सकता है या बदला जा सकता है।

संक्षेप में यह दूसरी पंक्ति के विफल होने के लिए पूरी तरह से संभव है क्योंकि निर्देशिका मौजूद नहीं है।

if (Directory.Exists(somePath)) { 
    var files = Directory.GetFiles(somePath); 
} 

मैं हाल ही में इस विषय पर एक ब्लॉग प्रविष्टि लिखी अगर आप Directory.Exists तरह तरीकों का उपयोग कर रहे हैं एक निर्णय

6

यदि पथ मौजूद है, तो आप यह बता सकते हैं कि Directory.Exists यह बताने के लिए कि यह एक फ़ाइल या निर्देशिका है या नहीं।

bool existsAndIsDirectory = Directory.Exists(path); 

यदि पथ मौजूद नहीं है, तो यह बताने का कोई तरीका नहीं है कि पथ एक फ़ाइल या निर्देशिका है क्योंकि यह या तो हो सकता है।

29

तुम भी कर सकता है बनाने के लिए एक पढ़ने लायक है :

FileAttributes attr = File.GetAttributes(@"c:\Path\To\Somewhere"); 
if((attr & FileAttributes.Directory) == FileAttributes.Directory) 
{ 
    //it's a directory 
} 
+1

यह वास्तव में उत्तर है! – nawfal

7

आप फ़ाइल एट की जांच भी कर सकते हैं File.GetAttributes() द्वारा ributes (बेशक, केवल अगर फ़ाइल/निर्देशिका मौजूद है)। FileAttributes प्रकार का नाम Directory है जो इंगित करता है कि पथ एक निर्देशिका है या नहीं।

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