Bir klasörde dosya olup olmadığı nasıl kontrol edilir?


112

Klasörde bir xml dosyası olup olmadığını kontrol etmem gerekiyor.

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

Klasörde bir dosya olup olmadığını kontrol etmenin en iyi yolu bu mu?

Sadece bir xml dosyası olup olmadığını kontrol etmem gerekiyor


2
Tüm xml dosyalarını mı yoksa belirli bir ada sahip olanı mı arıyorsunuz?
Piotr Auguscik


5
İhtiyacınız olan şey sadece Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any()ve alabileceğiniz en hızlı şey bu.
Gölge Sihirbazı Sizin İçin Kulak

Yanıtlar:


197

Bu, o klasörde herhangi bir XML dosyası olup olmadığını görmenin bir yoludur, evet.

Belirli dosyaları kontrol etmek için File.Exists(path), dosyanın pathvar olup olmadığını gösteren bir boole döndürür .


4
Ayrıca FileInfo.Exists özelliğini de kullanabilirsiniz
VMAtm

10
Hayır, kullanıcının dosyayı okuma izni yoksa bu yanıt yanlış döndürür. Bu nedenle, dosyanın bir klasörde mevcut olup olmadığını kontrol etmekten daha fazlasını yapar. DirectoryInfo.GetFiles () kullanmak ve sonucu numaralandırmak isteyebilirsiniz.
ogborstad

35

FileInfo.ExistsMülk Kullan :

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

veya File.ExistsYöntem:

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

5
DirectoryInfo ve FileInfo sınıfları harika. Bu dosya sistemi yapılarıyla başa çıkmak için birçok yöntem sunarlar, kullanıcı arabirimine bağlanırken yararlı olan özelliklerdeki bilgileri açığa çıkarırlar ve serileştirilebilirler, böylece bunları yapılandırmalarda kullanabilirsiniz.

29

Dosyanın var olup olmadığını kontrol etmek için kullanabilirsiniz

System.IO.File.Exists(path)

8

Bu şekilde, belirli bir klasörde mevcut bir dosyayı kontrol edebiliriz:

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

8

Hiç kimse dosyanın var olup olmadığını ve geçerli klasörü nasıl kontrol edeceğini söylemediğinden , yürütülebilir dosya (Çalışma Dizini) içinde :

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

@"\YourFile.txt"Araçlar gibi çok ırkı, küçük harf duyarlı değildir @"\YoUrFiLe.txt"ve @"\YourFile.TXT"ya @"\yOuRfILE.tXt"aynı yorumlanır.


3

Şu şekilde geliştirilebilir:

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

Alternatif:

log.Info(Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").ToList<string>().Count + " file(s) present");

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

2
Bu kod sorunu çözse (veya çözemese de), iyi bir yanıt her zaman bu kodun ne işe yaradığına dair bir açıklama gerektirir. Ayrıca cevabınızın yeni bir şey eklemediğini unutmayın. Ayrıca kod örneğinizi uygun şekilde biçimlendirmeli ve localUploadDirectorycevabınızın neyin olduğunu veya neden buna atıfta bulunduğunu açıklamalısınız.
BDL

0

Bu bana yardımcı oldu:

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

4
(System.IO.File.Exists(filePath) ? true : false);fazlalık System.IO.File.Exists(filePath);yeterli olacaktır.
Naveen Niraula

2
Aslında Adrita'nın kodu gibi, değişkenin ne tutması gerektiğini açıkça ortaya koyduğu için, öğrenci programları için mantığın nasıl uygulanacağına dair mükemmel bir örnek. Bunu bir derse dahil edecek. Bazen, zorunlu hale getirilmiş kod aynı zamanda bakım ve hata ayıklamada en büyük ek yüke sahiptir
ScaryMinds

0

Bu benim için uyandırdı.

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;
             }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.