Como verificar se existe um arquivo em uma pasta?

112

Preciso verificar se existe um arquivo xml na pasta.

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

Esta é a melhor maneira de verificar se existe um arquivo na pasta.

Preciso verificar se apenas um arquivo xml está presente

user386258
fonte
2
Você está procurando todos os arquivos xml ou aquele com um nome específico?
Piotr Auguscik
possível duplicata de Como verificar rapidamente se a pasta está vazia (.NET)?
Shadow Wizard is Ear For You
5
O que você precisa é justo Directory.EnumerateFileSystemEntries(ProcessingDirectory, "*.xml").Any()e o mais rápido que você pode conseguir.
Shadow Wizard is Ear For You

Respostas:

197

Esta é uma maneira de ver se existe algum arquivo XML nessa pasta, sim.

Para verificar a existência de arquivos específicos File.Exists(path), use o , que retornará um booleano indicando se o arquivo pathexiste.

CodeCaster
fonte
4
Você também pode usar a propriedade FileInfo.Exists
VMAtm
10
Não, essa resposta retorna falso se o usuário não tiver permissão para ler o arquivo. Portanto, ele faz mais do que apenas verificar se o arquivo existe em uma pasta. Você pode querer usar DirectoryInfo.GetFiles () e enumerar o resultado.
ogborstad
35

FileInfo.ExistsPropriedade 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);

ou File.ExistsMétodo:

string curFile = @"c:\temp\test.txt";
Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist.");
VMAtm
fonte
5
As classes DirectoryInfo e FileInfo são fantásticas. Eles oferecem muitos métodos para lidar com essas construções de sistema de arquivos, expõem informações em propriedades que são úteis durante a vinculação à interface do usuário e são serializáveis, para que você possa usá-los nas configurações.
29

Para verificar se o arquivo existe ou não, você pode usar

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

Desta forma, podemos verificar se há um arquivo existente em uma pasta específica:

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

Já que ninguém disse como verificar se o arquivo existe E obter a pasta atual em que o executável está (Diretório de Trabalho) :

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

O @"\YourFile.txt"não diferencia maiúsculas de minúsculas, o que significa coisas como @"\YoUrFiLe.txt"e / @"\YourFile.TXT"ou @"\yOuRfILE.tXt"são interpretadas da mesma forma.

Bennett Yeo
fonte
3

Pode ser melhorado assim:

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");
WonderWorker
fonte
1
if (File.Exists(localUploadDirectory + "/" + fileName))
{                        
    `Your code here`
}
Bhavin
fonte
2
Embora esse código possa (ou não) resolver o problema, uma boa resposta sempre requer uma explicação sobre o que esse código faz. Observe também que sua resposta não parece acrescentar nada de novo. Você também deve formatar seu exemplo de código apropriadamente e explicar o que localUploadDirectoryé ou por que sua resposta se refere a ele.
BDL de
0

Isso me ajudou:

bool fileExists = (System.IO.File.Exists(filePath) ? true : false);
Adrita Sharma
fonte
4
(System.IO.File.Exists(filePath) ? true : false);é redundante System.IO.File.Exists(filePath);será suficiente.
Naveen Niraula
2
Na verdade, como o código de Adrita, pois torna óbvio o que a variável deve conter, também um excelente exemplo de como aplicar lógica para programas de alunos. Vou incorporar isso em uma aula. Às vezes, o código deve ser simplificado também tem a maior sobrecarga na manutenção e depuração
ScaryMinds
0

Isso despertou para mim.

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;
             }
poder de radhason
fonte