Como testar se um arquivo existe em C?
Qual a melhor forma de testar se um arquivo exite em C? Eu pensei em abrir o arquivo com fopen() se der erro é por que o arquivo não existe. Mas isso me parece meio burro, ja que eu não vou utilizar o arquivo pra que abrir então!
Qual a melhor forma de testar se o arquivo existe, digo "melhor forma" em termos de desempenho.
fopen() e fstat() me parecem que fazem mais coisas do simple mais enxuta!
Existe uma função expecifica para testar se um arquivo existe em C? se não qual a melhor forma de testar então?
Como testar se um arquivo existe em C?
fopen e fstat abrem os arquivos, logo, esqueça-os. Você pode utilizar access() ou stat() assim:
Código :
#include <sys/stat.h>
int fileExists(char *cpfileName)
{
struct stat stStat;
int errcode = stat (cpfileName, &stStat);
if (errcode == ENOENT)
return 0; /* nao existe */
return 1; /* existe */
}
ou...
Código :
#include <unistd.h>
int fileExists(char *cpfileName)
{
int errcode = access(cpfileName, F_OK);
if (errcode == ENOENT)
return 0; /* nao existe */
return 1; /* existe */
}
ps: olhe as manpages das funções, você pode verificar as permissões também. Outra coisa, a variavel errno já é setada por padrão quando ocorrer um erro.
http://www.fifi.org/cgi-bin/man2html...n2/access.2.gz
http://www.fifi.org/cgi-bin/man2html...man2/stat.2.gz
Abraços
Como testar se um arquivo existe em C?
Podis ser assim tbm:
Código :
int main(int argc,char *argv[]){
FILE *fp;
fp=fopen("/caminho/pro/arquivo.ext","r");
if(fp){
printf("Aeee...existe\n");
fclose(fp);
}else{
printf("Game Over\nTry again");
}
return(0);
}
Como testar se um arquivo existe em C?
Como testar se um arquivo existe em C?
Citação:
Postado originalmente por Simples assim...
man 3 stat
Citação:
Postado originalmente por Slackware 10
[09:04:08@sdm]$ man 3 stat
Não existe a entrada stat na secção 3
:cry: soh aki deu isso???
Como testar se um arquivo existe em C?
Citação:
Postado originalmente por SDM
Citação:
Postado originalmente por Simples assim...
man 3 stat
Citação:
Postado originalmente por Slackware 10
[09:04:08@sdm]$ man 3 stat
Não existe a entrada stat na secção 3
:cry: soh aki deu isso???
man 2 stat
Como testar se um arquivo existe em C?
Citação:
Postado originalmente por veiga
man 2 stat
ah soh....valew
Re: Como testar se um arquivo existe em C?
@ veiga
amigo bom dia sou novo aqui e quero fazer o seguinte eu uso o advmenu para jogos estou compilando ele mas queria fazer um codigo para verificar a existencia de um outro executavel dentro da pasta system32 caso esse executavel não exista o advmenu dê uma mensagem de erro e não execute tem como ajudar?
seria mais ou menos isso aqui
Código :
int main(int argc, char *argv[]){
// nome do arquivo
CHAR arquivo[] = "c:\\windows\\system32\\arcade.exe";
// vamos testar a existência do arquivo
if(PathFileExists(arquivo)){
cout << "ENTRE EM CONTATO COM O FORNECEDOR .\n" << endl;
}
else{
cout << "O arquivo NÃO existe no caminho informado ENTRE EM CONTATO COM O FORNECEDOR : " <<
GetLastError() << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
ja tentei adicionar esse codigo mas da erro tem como ajudar a fazer essa função?