Bagaimana cara memeriksa apakah file ada di folder?

112

Saya perlu memeriksa apakah file xml ada di folder.

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

Apakah ini cara terbaik untuk memeriksa file yang ada di folder tersebut.

Saya perlu memeriksa apakah ada file xml

pengguna386258
sumber
2
Apakah Anda mencari semua file xml atau yang memiliki nama tertentu?
Piotr Auguscik
kemungkinan duplikat Bagaimana cara cepat memeriksa apakah folder kosong (.NET)?
Shadow Wizard adalah Ear For You
5
Yang Anda butuhkan adil Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any()dan itulah yang tercepat yang bisa Anda dapatkan.
Shadow Wizard adalah Ear For You

Jawaban:

198

Ini adalah cara untuk melihat apakah ada file XML di folder itu, ya.

Untuk memeriksa penggunaan file tertentu File.Exists(path), yang akan mengembalikan boolean yang menunjukkan apakah file tersebut pathada.

CodeCaster
sumber
4
Anda juga dapat menggunakan properti FileInfo.Exists
VMAtm
10
Tidak, jawaban ini mengembalikan false jika pengguna tidak memiliki izin untuk membaca file. Jadi ia melakukan lebih dari sekadar check in jika file tersebut ada di dalam folder. Anda mungkin ingin menggunakan DirectoryInfo.GetFiles () dan menghitung hasilnya.
ogborstad
35

Gunakan FileInfo.ExistsProperti:

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

atau File.ExistsMetode:

string curFile = @"c:\temp\test.txt";
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");
VMAtm
sumber
5
Kelas DirectoryInfo dan FileInfo sangat mengagumkan. Mereka menawarkan banyak metode untuk menangani konstruksi sistem file ini, mengekspos informasi dalam properti yang berguna saat mengikat ke UI, dan dapat diserialkan, sehingga Anda dapat menggunakannya dalam konfigurasi.
29

Untuk memeriksa file ada atau tidak, Anda dapat menggunakan

System.IO.File.Exists(path)
62071072SP
sumber
8

Dengan cara ini kita dapat memeriksa file yang ada di folder tertentu:

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

Karena tidak ada yang mengatakan bagaimana cara memeriksa apakah file tersebut ada DAN mendapatkan folder saat ini, file yang dapat dieksekusi ada di (Direktori Kerja) :

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

Tidak @"\YourFile.txt"case sensitive, artinya hal-hal seperti @"\YoUrFiLe.txt"dan @"\YourFile.TXT"atau @"\yOuRfILE.tXt"ditafsirkan sama.

Bennett Yeo
sumber
3

Itu dapat ditingkatkan seperti:

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

Kalau tidak:

log.Info(Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").ToList<string>().Count + " file(s) present");
WonderWorker
sumber
1
if (File.Exists(localUploadDirectory + "/" + fileName))
{                        
    `Your code here`
}
Bhavin
sumber
2
Meskipun kode ini mungkin (atau mungkin tidak) menyelesaikan masalah, jawaban yang baik selalu membutuhkan penjelasan tentang fungsi kode ini. Perhatikan juga, bahwa jawaban Anda sepertinya tidak menambahkan sesuatu yang baru. Anda juga harus memformat sampel kode Anda dengan tepat dan menjelaskan apa localUploadDirectoryatau mengapa jawaban Anda merujuk padanya.
BDL
0

Ini membantu saya:

bool fileExists = (System.IO.File.Exists(filePath) ? true : false);
Adrita Sharma
sumber
4
(System.IO.File.Exists(filePath) ? true : false);berlebihan System.IO.File.Exists(filePath);sudah cukup.
Naveen Niraula
2
Sebenarnya seperti kode Adrita, karena menjelaskan variabel apa yang harus dipegang, juga contoh yang sangat baik tentang bagaimana menerapkan logika untuk program siswa. Akan memasukkan itu dalam pelajaran. Terkadang kode yang harus disederhanakan juga memiliki overhead terbesar dalam pemeliharaan dan debugging
ScaryMinds
0

Ini terbangun untuk saya.

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;
             }
kekuatan radhason
sumber