121 votes

Comment vérifier si un fichier existe dans un dossier ?

Je dois vérifier si un fichier xml existe dans le dossier.

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

Est-ce la meilleure façon de vérifier qu'un fichier existe dans le dossier ?

Je dois vérifier si un fichier xml est présent.

2 votes

Recherchez-vous tous les fichiers xml ou celui qui porte un nom spécifique ?

0 votes

5 votes

Ce dont vous avez besoin est juste Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any() et c'est le plus rapide que vous pouvez obtenir.

208voto

CodeCaster Points 38181

C'est un moyen de voir si des fichiers XML existent dans ce dossier, oui.

Pour vérifier la présence de fichiers spécifiques, utilisez File.Exists(path) qui retournera un booléen indiquant si le fichier à l'adresse path existe.

4 votes

Vous pouvez également utiliser la propriété FileInfo.Exists.

12 votes

Notez que cette réponse renvoie faux si l'utilisateur n'a pas la permission de lire le fichier. Elle fait donc plus que simplement vérifier si le fichier existe dans un dossier. Vous pourriez vouloir utiliser DirectoryInfo.GetFiles() et énumérer le résultat.

40voto

VMAtm Points 8401

Utilisez FileInfo.Exists Propriété :

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.Exists Méthode :

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

5 votes

Les classes DirectoryInfo et FileInfo sont géniales. Elles offrent de nombreuses méthodes pour traiter ces constructions de système de fichiers, exposent des informations dans des propriétés qui sont utiles lors de la liaison avec l'interface utilisateur, et sont sérialisables, de sorte que vous pouvez les utiliser dans des configurations.

34voto

62071072SP Points 673

Pour vérifier si un fichier existe ou non, vous pouvez utiliser

System.IO.File.Exists(path)

9voto

Bennett Yeo Points 496

Puisque personne n'a dit comment vérifier si le fichier existe ET obtenir le dossier actuel dans lequel se trouve l'exécutable (Working Directory) :

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

El @"\YourFile.txt" n'est pas sensible à la casse, ce qui signifie que des choses comme @"\YoUrFiLe.txt" y @"\YourFile.TXT" o @"\yOuRfILE.tXt" est interprété de la même manière.

7voto

Himansz Points 20

De cette façon, nous pouvons vérifier si un fichier existe dans un dossier particulier :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X