Maneira mais rápida de verificar se existe um arquivo usando C ++ padrão

Maneira mais rápida de verificar se existe um arquivo usando C ++ padrão
Verificando se existem arquivos O uso de C ++ padrão é uma tarefa importante para os desenvolvedores que trabalham em aplicativos relacionados a arquivos e diretórios. Antes de transferir quaisquer dados para o disco ou tentar substituir um arquivo existente, verificando se o o arquivo existe é vital. Dependendo do que o desenvolvedor está tentando alcançar, existem várias maneiras de verificar se um o arquivo existe. Este artigo vai te ensinar mais sobre isso.

Como verificar a existência do arquivo no padrão C++

Existem inúmeros métodos para descobrir se um arquivo está lá, como o seguinte:

  • Usando a função stat ()
  • Usando std :: ifstream
  • Usando a função fopen ()

1: Como verificar a existência do arquivo em C ++ usando a função stat ()

O Estado() O método é a técnica mais eficiente e segura para verificar a existência do arquivo. O sys/stat.h O arquivo de cabeçalho tem uma função predefinida chamada Estado. A função aceita um caminho e uma estrutura como parâmetros, onde o arquivo ou o diretório associa os metadados, se houver, seria mantido. A função retorna o resultado de 0 se a rota for legítima. Nós verificaríamos o existência do arquivo como um exemplo:

#incluir
#incluir
usando namespace std;
int main ()

const char* file = "c_file.TXT";
STRUT STAT SB;
if (stat (arquivo, & sb) == 0)
cout << "This file exists";
outro
cout << "The file does not exists!";
retornar 0;

Primeiro, a variável de ponteiro do arquivo armazena o caminho do arquivo. Depois disso, o Estado O formato do arquivo de cabeçalho é usado para inicializar a estrutura vazia. Metadados seriam salvos dessa maneira. O função estatística é então chamado dentro da condição if. O resultado seria 0 se o caminho estivesse correto, o que significa que o arquivo ou diretório existia; Caso contrário, seria diferente de zero.

Saída

Observação: Certifique -se de substituir o nome do arquivo “C_FILE.TXT" com o nome do arquivo que você deseja verificar.

2: Como verificar a existência do arquivo em C ++ usando a função std :: ifStream ()

Usando a função de biblioteca padrão C ++ std :: ifstream é outro método para determinar se um arquivo está presente. Um objeto de fluxo que pode ser usado para ler o arquivo é retornado por esta função, que aceita um caminho como uma entrada. Para usar esta função, o desenvolvedor passaria o caminho e o nome do arquivo para o construtor do std :: ifstream aula. O resultado de fazer isso é o arquivo que está sendo aberto com sucesso pelo construtor ou uma exceção sendo jogada. Como resultado, se o arquivo for aberto, o desenvolvedor poderá assumir que está presente.

#incluir
#incluir
usando namespace std;
int main ()
arquivo ifstream ("file_name.TXT");
if (arquivo.bom())

std :: cout << "file exists." << endl;

outro

std :: cout << "file doesn't exist." << endl;

Começando com o principal() método, um objeto do ifstream A classe nomeada é criada para ler o arquivo de destino mais tarde. Ao invocar a função aberta no objeto de arquivo, o nome do arquivo de destino é fornecido como um argumento. Esta linha tentará abrir o arquivo no modo somente leitura.

Como um arquivo só pode ser aberto se existir fisicamente lá e não puder ser acessado de outra forma. Estamos utilizando indiretamente o método open () para verificar o existência do arquivo. Em seguida, usando declarações condicionais if-else, determinamos se o objeto de arquivo abriu o arquivo ou não; Se houver, isso significa que está localizado no caminho especificado e exibimos uma mensagem de sucesso; Caso contrário, produzimos uma mensagem de erro.

Saída

3: Como verificar a existência do arquivo em C ++ usando a função fopen ()

A terceira maneira de verificar se um o arquivo existe é usar a função C ++ fopen (). O fopen () O método cria um fluxo e abre o arquivo indicado pelo nome do arquivo. A variável de modo é uma sequência de caracteres que indica o tipo de acesso ao arquivo que foi solicitado. Um parâmetro posicional precede argumentos de palavras -chave opcionais na variável de modo.

Podemos salvar o valor de retorno da execução de fopen () no arquivo de ponteiro quando terminar. Se a abertura do arquivo foi bem -sucedida, a função fopen (), que mostram se o arquivo tivesse aberto anteriormente, produzirá um ponteiro de fluxo de arquivos referente ao arquivo de destino. Se não tiver sido bem -sucedido, o que indica se o arquivo já havia sido, ele retornará nulo. Então, se a referência do arquivo não for nula, sabemos que o arquivo está presente e poderá produzir uma mensagem de sucesso; Caso contrário, uma mensagem de erro será enviada.

#incluir
#incluir
usando namespace std;
int main ()

Arquivo* arquivo;
arquivo = fopen ("c_file.txt "," r ");
if (arquivo!= Nulo)

cout << "File exists" << endl;

outro

cout << "File does not exists" << endl;

retornar 0;

Para ler o arquivo, construímos um ponteiro para a classe de arquivos a partir do principal () método. Em seguida, usamos os argumentos “C_FILE.TXT" e "R" Para definir o arquivo de destino e a ação que queremos executar nele quando executamos o fopen () método. 'r' indica que queremos ler o arquivo.

Saída

Conclusão

Existem diferentes funções C ++ para verificar se existe um arquivo, que são stat, std :: ifstream e FOPEN. Dos três métodos, Estado() A função é a maneira mais rápida e confiável de verificar as existências de arquivos. Enquanto outras duas funções também são úteis para verificar a existência do arquivo. Portanto, os desenvolvedores devem considerar o uso dessas funções para obter o melhor desempenho e confiabilidade ao verificar a existência de arquivo.