Oppure

Loading
10/12/07 19:45
Mitch7
Ciao ho fatto un programmino per la ricerca di file in disco locale, un mio amico mi ha aggiunto un ultimo pezzo ma non capisco cosa fa questo pezzetto, lui non lo vedo + da 2 sett perché è partito e fino a febbraio non torna...posso postare il codice e chiederti se puoi essermi d'aiuto???
aaa
11/12/07 7:29
gantonio
Facevi prima a mostrare il codice ...
aaa
11/12/07 13:51
Mitch7
#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
aaa
11/12/07 15:03
gantonio
Questo è il codice solo che funziona solo con i file .txt se metto i file.cpp non viene...


Mi pare evidente ... se c'e' scritto

    // Verifico che il percorso sia un file txt
    char *p;
    p = strstr(struttura.cFileName,".txt");


secondo te cosa dovrebbe trovare?

cmq la parte sottolineata non la capisco


Quale e' la parte sottolineata ? :-?
Ultima modifica effettuata da gantonio 11/12/07 15:04
aaa
11/12/07 18:03
Mitch7
é la parte che va da /*verifico che sia un file .txt a /*in app abbiamo messo...ho detto che era sottolineata xché mi pareva di averla sottolineata....cmq se io anziche ricercare i txt volessi ricercare i cpp come devo fare???perché mi sono sbattutto un pò ma nn riesco a venrine a capo
aaa
11/12/07 18:38
gantonio
Hai letto bene quello che ti ho risposto? Ti ho detto in pratica che al posto di .txt devi inserire .cpp ... ma non ci vuole molto ad arrivarci ...
aaa
11/12/07 19:20
Mitch7
E l'ho fatto ma mi si pianta...l'avevo già provato da solo
aaa
11/12/07 20:18
gantonio
Postato originariamente da Mitch7:

E l'ho fatto ma mi si pianta...l'avevo già provato da solo


E quando l'hai detto che l'avevi sostituito? E cosa vuol dire "si pianta"? Probabilmente non trova i .cpp e cercando su tutto il disco ci sta un po' ...

E poi, con i txt funziona? Se funziona, non vedo il motivo perche' si "pianti" con i cpp ...
aaa