¿Cómo verificar si un archivo existe en una carpeta?

Necesito comprobar si existe un archivo xml en la carpeta.

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

¿Es esta la mejor manera de verificar que exista un archivo en la carpeta?

Necesito comprobar que solo está presente un archivo xml

Esta es una forma de ver si existe algún archivo XML en esa carpeta, sí.

Para buscar archivos específicos, use File.Exists(path) , que devolverá un valor booleano indicando si el archivo existe.

Usar la propiedad 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); 

o método File.Exists :

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

Para verificar el archivo existe o no, puede usar

 System.IO.File.Exists(path) 

De esta forma, podemos verificar si hay un archivo existente en una carpeta en particular:

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

Como nadie dijo cómo verificar si el archivo existe Y obtener la carpeta actual en la que se encuentra el ejecutable (Directorio de trabajo) :

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

El @"\YourFile.txt" no @"\YourFile.txt" mayúsculas y minúsculas, eso significa que cosas como @"\YoUrFiLe.txt" y @"\YourFile.TXT" o @"\yOuRfILE.tXt" se interpretan de la misma manera.

Se puede mejorar así:

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

Alternativamente:

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

Esto me ayudó:

 bool fileExists = (System.IO.File.Exists(filePath) ? true : false); 
 if (File.Exists(localUploadDirectory + "/" + fileName)) { `Your code here` }