Ir ao conteúdo
  • Cadastre-se

como ler todos os arquivos de um mesmo diretório?


osenhordotempo

Posts recomendados

como faço pra ler todos os arquivos de um mesmo diretório em C?

preciso que meu programa acesse sequencialmente todos os arquivos de um dado diretório, e os processe, um a um...

o algoritmo de processamento já tá pronto, só falta esse lance de ler todos do mesmo diretório...

como?

Link para o comentário
Compartilhar em outros sites

Olha esse exemplo.

Acho que não funciona no windows


#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>

#define DIR_TO_FIND "./"
void
funcao_teste(const char* file_name) {
 FILE *fp = fopen(file_name,"r");
 char buf[255];
 
 if (NULL == fp) {
   printf("erro ao abrir %s\n");
   return;
 }
 
 fgets(buf,255,fp); //le a primeira linha
 printf("Arq %s Func test leu %s",file_name,buf);

 fclose(fp);
 return;
}

int
main(int argc,char **argv)
{
 DIR *dir;
 struct dirent *current_dir;
 struct stat my_stat;
 
 dir = opendir(DIR_TO_FIND);
 
 if (NULL == dir )
{
   printf("não pude abrir o diretorio\n");
   return 1;
 }
 
 current_dir = readdir(dir);
 while(NULL != current_dir)
{    
   stat(current_dir->d_name,&my_stat);
   if ( my_stat.st_mode & S_IFREG ) // é um arquivo comum ?
     {
 funcao_teste(current_dir->d_name);
     }
   current_dir = readdir(dir);
 }
 
 closedir(dir);

 return 0;
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...