अगर एक फ़ोल्डर में एक फ़ाइल मौजूद है, तो कैसे जांचें?


112

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

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

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

मुझे बस एक xml फ़ाइल मौजूद है की जाँच करने की आवश्यकता है


2
क्या आप सभी xml फ़ाइलों या विशिष्ट नाम के साथ खोज रहे हैं?
पायोत्र ऑगुस्किक


5
आपको जो चाहिए वह सिर्फ Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any()और सिर्फ यही है कि आप सबसे तेज प्राप्त कर सकें।
शैडो विजार्ड ईआर फॉर यू आपके लिए

जवाबों:


198

यह देखने का एक तरीका है कि क्या उस फ़ोल्डर में कोई XML-फ़ाइलें मौजूद हैं, हाँ।

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


4
आप FileInfo.Exists प्रॉपर्टी
VMAtm

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

35

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.");

5
DirectoryInfo और FileInfo कक्षाएं बहुत बढ़िया हैं। वे इन फाइल सिस्टम कंस्ट्रक्शन से निपटने के लिए बहुत सारे तरीके प्रदान करते हैं, उन संपत्तियों की जानकारी को उजागर करते हैं जो यूआई से जुड़ने पर उपयोगी होती हैं, और क्रमबद्ध होती हैं, इसलिए आप उन्हें कॉन्फ़िगरेशन में उपयोग कर सकते हैं।

29

जाँच करने के लिए फ़ाइल मौजूद है या नहीं आप उपयोग कर सकते हैं

System.IO.File.Exists(path)

8

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

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

8

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

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

@"\YourFile.txt"केस संवेदी नहीं है, साधन की तरह सामान है कि @"\YoUrFiLe.txt"और @"\YourFile.TXT"या @"\yOuRfILE.tXt"एक ही व्याख्या की है।


3

इसे ऐसे सुधारा जा सकता है:

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");

1
if (File.Exists(localUploadDirectory + "/" + fileName))
{                        
    `Your code here`
}

2
हालाँकि यह कोड समस्या का समाधान कर सकता है (या नहीं भी कर सकता है), एक अच्छे उत्तर के लिए हमेशा इस कोड के स्पष्टीकरण की आवश्यकता होती है। यह भी ध्यान दें, कि आपका उत्तर कुछ भी नया नहीं लगता है। आपको अपने कोड नमूने को भी उचित रूप से प्रारूपित करना चाहिए और समझाना चाहिए localUploadDirectoryकि आपका उत्तर क्या है या क्यों नहीं।
BDL

0

इससे मुझे मदद मिली:

bool fileExists = (System.IO.File.Exists(filePath) ? true : false);

4
(System.IO.File.Exists(filePath) ? true : false);बेमानी System.IO.File.Exists(filePath);है।
नवीन निहारुला

2
वास्तव में Adrita का कोड, जैसा कि यह स्पष्ट करता है कि चर को क्या रखना चाहिए, यह भी एक उत्कृष्ट उदाहरण है कि छात्र कार्यक्रमों के लिए तर्क कैसे लागू करें। एक पाठ में शामिल करने के लिए जा रहे हैं। कभी-कभी सुव्यवस्थित कोड को रखरखाव और डिबगिंग में सबसे बड़ा ओवरहेड भी होना चाहिए
ScaryMinds

0

यह मेरे लिए जाग गया।

file_browse_path=C:\Users\Gunjan\Desktop\New folder\100x25Barcode.prn
  String path = @"" + file_browse_path.Text;

  if (!File.Exists(path))
             {
      MessageBox.Show("File not exits. Please enter valid path for the file.");
                return;
             }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.