#include <windows.h>
#include <stdio.h>
void FindFile(char *unit)
{
char start[256];
if(strlen(unit))//verifico che la stringa unit non sia vuota
{
strcpy(start, unit);
strcat(start, "\\*.*");
}
char FullPath[2000];
WIN32_FIND_DATA nb, sp, struttura;
HANDLE hv;
int i;
/*Ciclo che parte dal primo file trovato nella directory e che finisce quando
non sono presenti piu' file nell'unità*/
for(hv = FindFirstFile(start, &struttura), i=1; hv !=INVALID_HANDLE_VALUE && i; i=FindNextFile(hv, &struttura))
{
//Controllo se il file trovato e' una directory
if(struttura.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
if(strcmp(struttura.cFileName, ".") && strcmp(struttura.cFileName, ".."))
{
//Creo un nuovo percorso col nome del file trovato
strcpy(FullPath, unit);
strcat(FullPath, "\\");
strcat(FullPath, struttura.cFileName);
//Effettuo la funzione in modo ricorsivo sul nuovo percorso
FindFile(FullPath);
}
}
// Verifico che il percorso sia un file txt
char *p;
p = strstr(struttura.cFileName,".txt");
if (p!=NULL)
{
char app[200];
strcpy(app,unit);
strcat(app,"\\");
strcat(app,struttura.cFileName);
printf("\n%s",app);
/* in app abbiamo il nostro percorso completo file pronto per
essere processato */
}
}
// Se il file è valido lo chiudo
if (hv!=INVALID_HANDLE_VALUE)
FindClose(hv);
}
void main()
{
char unit[10];
printf("Inserire l'unita' in cui si vuole cercare\n");
gets(unit);
FindFile(unit);
getchar();
}
Questo è il codice solo che funziona solo con i file .txt se metto i file.cpp non viene...cmq la parte sottolineata non la capisco
|