Come si fa' a Trovare i file Presenti in una directory...?
Come si fa' a Trovare i file Presenti in una directory...?
FindFirstFile
poi
FindNextFile
se ti serve x una dir soltanto senza sottodir
è semplice![]()
:master:
codice:#include <windows.h> #include <stdio.h> int main() { WIN32_FIND_DATA FindFileData; HANDLE hFind; char search[20]; printf ("Inserisci file da cercare:"); scanf("%s", &search); hFind = FindFirstFile(search, &FindFileData); if (hFind == INVALID_HANDLE_VALUE) printf ("Impossibile trovare il file specificato.\n"); else { printf ("File Trovato: %s\n", FindFileData.cFileName); FindClose(hFind); } system("pause"); return 0; }
...Terrible warlords, good warlords, and an english song
Potresti darmi anche un minimo di spiegazione?
![]()
utilizzo le API di windows (incluse nell'header <windows.h>.
hFind = FindFirstFile(search, &FindFileData);
controlla se il file inserito nella stringa "search"
esiste nella directory corrente, se non lo trova,
restituisce INVALID_HANDLE_VALUE
il resto è semplice.
Altrimenti (senza API).
codice:#include <stdio.h> // standard I/O C #include <stdlib.h> // system() #include <string.h> // strcmp() int main() { FILE *p; char search[20], str[20]; // stampo all'interno della directory fittizia il contenuto // (soltanto i files) della directory corrente, utilizzando // il comando DOS, DIR system("DIR .\\*.* /a:-d /b > current_dir.txt"); // apro uno stream con il file appena creato (apro in lettura "r") p = fopen(".\\current_dir.txt", "r"); // inserisco nella stringa "search" il nome del file da cercare printf("inserisci il file da cercare: "); scanf("%s", search); // ciclo infinito while(1) { // se il puntatore "p" è arrivato alla fine del file, //esco dal ciclo if( feof(p) ) break; // inserisco nella stringa "str" il contenuto di p // p, conterrà uno alla volta, tutti i nomi // dei files stampati precedentemente // in "current_dir.txt" fscanf(p, "%s", str); // utilizzo la funzione strcmp() // e verifico se il file da cercare inserito in "search" // è uguale al file corrente, contenuto in "str" if( ! strcmp(str, search) ) printf("File Trovato\n"); } // chiudo lo stream al file current_dir.txt fclose(p); // elimino il file fittizio, visto che non serve più system("DEL .\\current_dir.txt"); // attendo la pressione di un tasto prima di uscire dal programma system("pause"); // :) return 0; }
...Terrible warlords, good warlords, and an english song
ciao raga
ho letto con interesse questa discussione perché sto provando a costruire un clone del dos e questa nuova opzione (cercare files) non la conoscevo;
domande: - è possibile anche cercare cartelle ?
- si può fare una ricerca in una cartella e in tutte
le sue sotto-cartelle + i relativi files?
grazie per la risposta e ciao !
ps dove posso trovare spiegazioni sull'uso di windows.h ?????
_.-*''*-._.-*''*-._.-*''*-._ Non pescare il pesce, insegna a pescare !!! _.-*''*-._.-*''*-._.-*''*-._
Entropic666 (or Entropicus) on the web
Ho un problema:
se il file da cercare è composto da più di una parola (es : "lene marlin.doc") il prog mi dà errore;
come faccio a permettere un richiesta di un nome, del file, formato da più parole ?![]()
![]()
![]()
grazie per l'aiuto sempre !!!!!![]()
![]()
![]()
_.-*''*-._.-*''*-._.-*''*-._ Non pescare il pesce, insegna a pescare !!! _.-*''*-._.-*''*-._.-*''*-._
Entropic666 (or Entropicus) on the web