2011-09-12 21 views
65

मुझे यह जांचने की ज़रूरत है कि फ़ोल्डर में कोई XML फ़ाइल मौजूद है या नहीं।यह जांचने के लिए कि फ़ोल्डर में कोई फ़ाइल मौजूद है या नहीं?

DirectoryInfo di = new DirectoryInfo(ProcessingDirectory); 
FileInfo[] TXTFiles = di.GetFiles("*.xml"); 
if (TXTFiles.Length == 0) 
{ 
    log.Info("no files present") 
} 

क्या फ़ोल्डर में फ़ाइल मौजूद है यह जांचने का सबसे अच्छा तरीका है।

मैं जाँच करने के लिए सिर्फ एक xml फ़ाइल यह किसी भी एक्सएमएल-फ़ाइलें उस फ़ोल्डर में मौजूद रहने पर देखने के लिए एक रास्ता है वर्तमान

+2

आप सभी एक्सएमएल फाइल या एक के लिए देख रहे विशिष्ट नाम के साथ? –

+0

संभावित डुप्लिकेट [फ़ोल्डर खाली होने पर तुरंत जांचें (.NET)?] (Http://stackoverflow.com/questions/755574/how-to-quickly-check-if-folder-is-empty-net) –

+5

आपको केवल 'Directory.EnumerateFileSystemEntries (प्रसंस्करण निर्देशिका, "* .xml") की आवश्यकता है। कोई भी()' और यह सबसे तेज़ है जिसे आप प्राप्त कर सकते हैं। –

उत्तर

118

है, हाँ की जरूरत है।

विशिष्ट फ़ाइलों की जांच करने के लिए File.Exists(path) का उपयोग करें, जो path पर फ़ाइल को घुमाने वाला बूलियन लौटाएगा।

+3

आप FileInfo.Exists प्रॉपर्टी का उपयोग भी कर सकते हैं – VMAtm

+7

नोई कि अगर उपयोगकर्ता फ़ाइल को पढ़ने की अनुमति नहीं देता है तो यह उत्तर झूठा लौटाता है। इसलिए यदि फ़ाइल किसी फ़ोल्डर में मौजूद है तो यह केवल checkinf से अधिक करता है। आप DirectoryInfo.GetFiles() का उपयोग करना चाहेंगे और परिणाम की गणना कर सकते हैं। – ogborstad

26

उपयोग FileInfo.Exists संपत्ति:

DirectoryInfo di = new DirectoryInfo(ProcessingDirectory); 
FileInfo[] TXTFiles = di.GetFiles("*.xml"); 
if (TXTFiles.Length == 0) 
{ 
    log.Info("no files present") 
} 
foreach (var fi in TXTFiles) 
    log.Info(fi.Exists); 

या File.Exists विधि:

string curFile = @"c:\temp\test.txt"; 
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist."); 
+4

DirectoryInfo और FileInfo कक्षाएं भयानक हैं। वे इन फाइल सिस्टम संरचनाओं से निपटने के लिए बहुत सी विधियों की पेशकश करते हैं, यूआई को बाध्य करते समय उपयोगी गुणों में जानकारी का पर्दाफाश करते हैं, और क्रमिक हैं, ताकि आप उन्हें विन्यास में उपयोग कर सकें। – Will

+0

डाउनवोट के लिए कोई कारण? – VMAtm

20

फ़ाइल की जाँच करने के लिए है या नहीं आप

System.IO.File.Exists(path) 
7

उपयोग कर सकते हैं इस तरह से हम एक मौजूदा के लिए जाँच कर सकते हैं किसी विशेष फ़ोल्डर में फ़ाइल:

string curFile = @"c:\temp\test.txt"; //Your path 
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist."); 
5

के बाद से कोई भी नहीं कहा कैसे यदि फ़ाइल मौजूद जांच करना और वर्तमान फ़ोल्डर निष्पादन में (कार्य निर्देशिका) है पाने के लिए:

if (File.Exists(Directory.GetCurrentDirectory() + @"\YourFile.txt")) { 
       //do stuff 
} 

@"\YourFile.txt" केस संवेदी नहीं है, उस तरह सामान का मतलब @"\YoUrFiLe.txt" और @"\YourFile.TXT" या @"\yOuRfILE.tXt" का अर्थ समान है।

2

यह बहुत की तरह सुधार किया जा सकता:

if(Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").ToList<string>().Count == 0) 
    log.Info("no files present") 

वैकल्पिक रूप से:

log.Info(Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").ToList<string>().Count + " file(s) present"); 
-9
String^ fileName = "C:\\Cal_Connect\\" + (this->cbo_Model_Name->Text) + "\\" + (this->txt_Certificate_No->Text) + "\\CUSTOMER RECORD\\" + "Status" + ".txt"; // สร้าง file CUSTOMER RECORD 
    if (!System::IO::File::Exists(fileName)) /* ถ้าไม่มี file จะสร้าง file ใหม่ (ถ้ามีจะไม่สร้าง file) */  
+4

यह पहले से ही पांच साल पहले उत्तर दिया गया है (एक अत्यधिक अपरिवर्तित, स्वीकृत उत्तर के साथ)। और जो आपने लिखा वह सी ++ की तरह दिखता है, सी # नहीं। –

0

यह मैं मदद की:

bool fileExists = (System.IO.File.Exists(filePath) ? true : false); 
संबंधित मुद्दे

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