Come verificare se un file esiste in una cartella?


112

Devo controllare se esiste un file xml nella cartella.

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

È questo il modo migliore per verificare che un file esista nella cartella.

Devo controllare che sia presente solo un file xml


2
Stai cercando tutti i file xml o quello con un nome specifico?
Piotr Auguscik


5
Quello di cui hai bisogno è giusto Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any()e questo è il più veloce che puoi ottenere.
Shadow Wizard is Ear For You

Risposte:


198

Questo è un modo per vedere se esistono file XML in quella cartella, sì.

Per controllare l'uso di file specifici File.Exists(path), che restituirà un valore booleano che indica se il file pathesiste.


4
Puoi anche utilizzare la proprietà FileInfo.Exists
VMAtm

10
Noe che questa risposta restituisce falso se l'utente non ha il permesso di leggere il file. Quindi non si limita a controllare se il file esiste in una cartella. Potresti voler usare DirectoryInfo.GetFiles () ed enumerare il risultato.
ogborstad

35

Usa FileInfo.Existsproprietà:

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

o File.ExistsMetodo:

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

5
Le classi DirectoryInfo e FileInfo sono fantastiche. Offrono molti metodi per gestire questi costrutti del file system, espongono le informazioni nelle proprietà che sono utili durante il collegamento all'interfaccia utente e sono serializzabili, quindi è possibile utilizzarli nelle configurazioni.

29

Per verificare che il file esista o meno puoi usare

System.IO.File.Exists(path)

8

In questo modo possiamo verificare la presenza di un file esistente in una cartella particolare:

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

8

Poiché nessuno ha detto come verificare se il file esiste E ottenere la cartella corrente, l'eseguibile si trova in (Directory di lavoro) :

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

Non @"\YourFile.txt"fa distinzione tra maiuscole e minuscole, ciò significa che cose come @"\YoUrFiLe.txt"e @"\YourFile.TXT"o @"\yOuRfILE.tXt"sono interpretate allo stesso modo.


3

Può essere migliorato in questo modo:

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

In alternativa:

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

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

2
Sebbene questo codice possa (o non potrebbe) risolvere il problema, una buona risposta richiede sempre una spiegazione su cosa fa questo codice. Nota inoltre che la tua risposta non sembra aggiungere nulla di nuovo. Dovresti anche formattare il tuo codice di esempio in modo appropriato e spiegare cos'è localUploadDirectoryo perché la tua risposta si riferisce ad esso.
BDL

0

Questo mi ha aiutato:

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

4
(System.IO.File.Exists(filePath) ? true : false);è ridondante System.IO.File.Exists(filePath);sarà sufficiente.
Naveen Niraula

2
In realtà come il codice di Adrita, in quanto rende ovvio cosa dovrebbe contenere la variabile, anche un ottimo esempio di come applicare la logica ai programmi degli studenti. Lo incorporerò in una lezione. A volte il codice semplificato ha anche il maggiore sovraccarico di manutenzione e debug
ScaryMinds

0

Questo mi ha svegliato.

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;
             }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.