Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C] File di una directory

    Come si fa' a Trovare i file Presenti in una directory...?

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    FindFirstFile
    poi
    FindNextFile

    se ti serve x una dir soltanto senza sottodir
    è semplice

  3. #3

  4. #4
    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

  5. #5
    Potresti darmi anche un minimo di spiegazione?

  6. #6
    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

  7. #7
    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

  8. #8
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.