Red de conocimiento informático - Material del sitio web - Cómo usar C++ para recorrer carpetas, leer el contenido de documentos y guardar en cadenas

Cómo usar C++ para recorrer carpetas, leer el contenido de documentos y guardar en cadenas

Utilice la API estándar en WIN32. El código es el siguiente. Si utiliza la biblioteca MFC, puede consultar las instrucciones de uso de CFileFind.

void traversal_dir( char *prefijo, char *ruta)

{

nombre de archivo char[512], nombre de ruta[512];

size_t pathlen = 0;

char szFind[MAX_PATH];

WIN32_FIND_DATA FindFileData;

strcpy(szFind,ruta);

strcat(szFind,"/*.*");

HANDLE hFind=::FindFirstFile(szFind,&FindFileData);

if(INVALID_HANDLE_VALUE == hFind)

{

return;

}

while(TRUE)

{

if (FindFileData. cFileName[0] != '.')

{

sprintf(nombre de archivo, "%s/%s", ruta,FindFileData.cFileName);

sprintf(pathname, "%s%s", prefix, FindFileData.cFileName);

//Si es una búsqueda recursiva en un directorio

if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

{

strcat(nombre de ruta, "/");

traversal_dir(nombre de ruta, nombre de archivo);

}

else

{

ARCHIVO *f = NULL;

char *buf = NULL;

if((f= fopen(nombre de archivo,"r"))==NULL)

{

printf("¡Error!\n"); retorno;

}

size_t nFileSize = ftell(f);

buf = new char[nFileSize+1];

fread(buf, nFileSize+1, 1,f);

printf("%s\n", buf);

eliminar []buf;

fclose(f)

}

}

if(!FindNextFile

(hFind,&FindFileData)) descanso;

}

FindClose(hFind);

}