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


112

Necesito verificar 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 forma de comprobar que existe un archivo en la carpeta?

Necesito verificar que solo haya un archivo xml presente


2
¿Está buscando todos los archivos xml o el que tiene un nombre específico?
Piotr Auguscik


5
Lo que necesita es justo Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any()y eso es lo más rápido que puede obtener.
Shadow Wizard es Ear For You

Respuestas:


198

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

Para verificar archivos específicos, use File.Exists(path), que devolverá un booleano que indica si pathexiste el archivo .


4
También puede usar la propiedad FileInfo.Exists
VMAtm

10
Noe que esta respuesta devuelve falso si el usuario no tiene permiso para leer el archivo. Por lo tanto, hace más que solo verificar si el archivo existe en una carpeta. Es posible que desee utilizar DirectoryInfo.GetFiles () y enumerar el resultado.
ogborstad

35

FileInfo.ExistsPropiedad de uso :

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.Existsmétodo:

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

5
Las clases DirectoryInfo y FileInfo son impresionantes. Ofrecen muchos métodos para lidiar con estas construcciones del sistema de archivos, exponen información en propiedades que son útiles cuando se vinculan a la interfaz de usuario y son serializables, por lo que puede usarlas en configuraciones.

29

Para comprobar que el archivo existe o no, puede utilizar

System.IO.File.Exists(path)

8

De esta manera podemos buscar 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.");

8

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 es sensible, lo que significa cosas como @"\YoUrFiLe.txt"y @"\YourFile.TXT"o @"\yOuRfILE.tXt"se interpreta de la misma.


3

Se puede mejorar así:

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

Alternativamente:

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

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

2
Aunque este código podría (o no) resolver el problema, una buena respuesta siempre requiere una explicación sobre lo que hace este código. También tenga en cuenta que su respuesta no parece agregar nada nuevo. También debe formatear su muestra de código de manera adecuada y explicar qué localUploadDirectoryes o por qué su respuesta incluso se refiere a él.
BDL

0

Esto me ayudó:

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

4
(System.IO.File.Exists(filePath) ? true : false);es redundante System.IO.File.Exists(filePath);.
Naveen Niraula

2
En realidad, como el código de Adrita, ya que hace obvio lo que debe contener la variable, también es un excelente ejemplo de cómo aplicar la lógica a los programas de los estudiantes. Voy a incorporar eso en una lección. A veces, el código optimizado también tiene la mayor sobrecarga en mantenimiento y depuración
ScaryMinds

0

Esto funcionó para mí.

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;
             }
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.