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

    [C++] Ricerca nel filesystem

    Salve Gente,
    Vi esplico il mio problema, nella maniera più breve possibile, sono mesi che sto cercando di produrre un Motore di Ricerca, interno al pc in C o in C++, questo motore deve cercare tutti i miei file, nelle varie periferiche del mio PC, oppure darmi la possibilità di scegliere la periferca, trovati i file, mi deve creare una Directory col nome dell'estensione del file e quindi inserire tutti i file con quella estensione nella Directory.

    Sono mesi che sto cercando di progettarla, conosco la base del C/C++ però non conosco le funzioni specifiche per la ricerca di file e altro, poteTe aiutarmi?
    Vi ringrazio di Cuore, sono mesi che sto impazzendo

  2. #2
    Per la gestione di file e percorsi puoi usare la libreria multipiattaforma Boost.Filesystem; in alternativa, a seconda del sistema operativo su cui lavori, ci sono API/syscall specifiche del sistema.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Quote Originariamente inviata da MItaly Visualizza il messaggio
    Per la gestione di file e percorsi puoi usare la libreria multipiattaforma Boost.Filesystem; in alternativa, a seconda del sistema operativo su cui lavori, ci sono API/syscall specifiche del sistema.
    Grazie per la risposta MItaly, puoi spiegarmi meglio, questa Boost.Filesystem è una libreria di C o una DLL di Windows, io utilizzo Win 7 Home Premium, il mio problema è che so creare, piccole applicazioni base, quindi se devo creare un software che va a gestire i file, mi è difficoltoso, ho comprato un Libro di C per imparare di più, però, vedo che non parla nello specifico di questa cosa...
    puoi aiutarmi Tu, magari con una stringa d'esempio?

  4. #4
    Purtroppo l'espressione "motore di ricerca", oltre ad essere piuttosto inflazionata, è del tutto fuorviante in un simile caso. Sarebbe opportuno che tu cambiassi il titolo del thread: tu hai semplicemente bisogno di una "file search utility".

    In secondo luogo, tale funzionalità richiede la stesura di una quantità di codice in C o in C++ decisamente notevole per un beginner, anche se si limita al massimo l'interazione con l'utente creando un eseguibile CLI che accetta semplicemente dei parametri da command line.

    La funzionalità richiesta, se si accetta di eseguire manualmente la banale operazione finale di copia (o trasferimento?) nella directory di destinazione, è peraltro prontamente disponibile in numerosi applicativi già pronti, tra i quali non si può non citare il Total Commander, ultimo e degno erede di una gloriosissima tradizione che risale addirittura al Norton Commander per DOS.

    In generale, per un compito del genere sarebbe inutile reinventare la ruota, specialmente con una scarsa esperienza di programmazione alle spalle.
    • Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.

  5. #5
    Quote Originariamente inviata da M.A.W. 1968 Visualizza il messaggio
    Purtroppo l'espressione "motore di ricerca", oltre ad essere piuttosto inflazionata, è del tutto fuorviante in un simile caso. Sarebbe opportuno che tu cambiassi il titolo del thread: tu hai semplicemente bisogno di una "file search utility".

    In secondo luogo, tale funzionalità richiede la stesura di una quantità di codice in C o in C++ decisamente notevole per un beginner, anche se si limita al massimo l'interazione con l'utente creando un eseguibile CLI che accetta semplicemente dei parametri da command line.

    La funzionalità richiesta, se si accetta di eseguire manualmente la banale operazione finale di copia (o trasferimento?) nella directory di destinazione, è peraltro prontamente disponibile in numerosi applicativi già pronti, tra i quali non si può non citare il Total Commander, ultimo e degno erede di una gloriosissima tradizione che risale addirittura al Norton Commander per DOS.

    In generale, per un compito del genere sarebbe inutile reinventare la ruota, specialmente con una scarsa esperienza di programmazione alle spalle.
    Grazie per la risposta M.A.W., immaginavo che era una difficoltà troppo alta per chi ha poca esperienza come me, purtroppo del C ho solo le basi, come per il Java, in compenso ho una bella esperienza per programmazione Web, infatti non capisco perchè non riesco a comprendere bene il C quando PHP e ASP sono molto simili. Che esistevano già applicativi che facevano questo lo immaginavo, però volevo farlo io, proprio per capire meglio la parte più complessa del C, solo che mi trovo molto in difficoltà, perchè molte terminologie non le conosco e in un libro che ho non ci sono tutti i termini, mi piacerebbe creare un software grafico e pensavo che una cosa così, fosse semplice da fare (complesso, ma semplice rispetto a altre applicazioni).

    Un'ultima cosa, come faccio a modificare il titolo? Non l'ho mai fatto da qui.
    Ultima modifica di AJB88; 23-08-2014 a 20:34 Motivo: richiesta ulteriore info

  6. #6
    Quote Originariamente inviata da AJB88 Visualizza il messaggio
    Grazie per la risposta MItaly, puoi spiegarmi meglio, questa Boost.Filesystem è una libreria di C o una DLL di Windows,
    È una libreria C++, parte della raccolta di librerie Boost. Per installare Boost su Windows vedi qui, ma occhio che non è banalissimo (fortunatamente l'ho sempre usata da Linux dove per installarla basta il package manager ).

    Comunque, se hai appena iniziato con il C non me la sento di consigliartela... pur essendo una libreria molto potente e tutto sommato comoda da usare, non è certo per principianti, oltre al fatto che appunto è una libreria C++ (mentre da quello che mi pare di capire tu stai imparando il C).
    io utilizzo Win 7 Home Premium, il mio problema è che so creare, piccole applicazioni base, quindi se devo creare un software che va a gestire i file, mi è difficoltoso, ho comprato un Libro di C per imparare di più, però, vedo che non parla nello specifico di questa cosa...
    Il punto è che il C standard fornisce poco riguardo alla gestione di file e niente rispetto a quella delle directory (il C nasce con una libreria minimale e per essere portabile sulle piattaforme più astruse, comprese quelle dove le directory non esistono), per cui necessariamente devi usare librerie platform-specific o multipiattaforma di terze parti.

    Quote Originariamente inviata da M.A.W. 1968 Visualizza il messaggio
    Purtroppo l'espressione "motore di ricerca", oltre ad essere piuttosto inflazionata, è del tutto fuorviante in un simile caso. Sarebbe opportuno che tu cambiassi il titolo del thread: tu hai semplicemente bisogno di una "file search utility".
    Cambiato io.
    In secondo luogo, tale funzionalità richiede la stesura di una quantità di codice in C o in C++ decisamente notevole per un beginner, anche se si limita al massimo l'interazione con l'utente creando un eseguibile CLI che accetta semplicemente dei parametri da command line.
    Se si usano le syscall sono d'accordo, ma anche solo una cosa come Boost.Filesystem aiuta enormemente... una ricerca ricorsiva diventa questione di tre righe:
    codice:
        typedef boost::filesystem::recursive_directory_iterator rdi;
        for(rdi it("percorso"); it!=rdi(); ++it)
            std::cout<<*it; // qui elaborazione
    Quote Originariamente inviata da AJB88 Visualizza il messaggio
    Grazie per la risposta M.A.W., immaginavo che era una difficoltà troppo alta per chi ha poca esperienza come me, purtroppo del C ho solo le basi, come per il Java, in compenso ho una bella esperienza per programmazione Web, infatti non capisco perchè non riesco a comprendere bene il C quando PHP e ASP sono molto simili.
    PHP e ASP non c'entrano assolutamente niente con il C...
    mi piacerebbe creare un software grafico
    Anche qui caschi male, come detto sopra nel C standard non c'è nulla che riguardi la GUI, anche per quello si usano librerie di piattaforma (come Win32 su Windows, Cocoa su OS X, GTK+ o altre multipiattaforma); idem nel caso di C++, anche se l'offerta di toolkit grafici è sicuramente più abbondante (non posso non consigliare come al solito Qt).
    In ogni caso, prima di arrivare ai toolkit grafici è consigliabile fare un po' di "gavetta" con cose più semplici...
    Un'ultima cosa, come faccio a modificare il titolo? Non l'ho mai fatto da qui.
    Dopo un'ora i messaggi non sono più modificabili dagli utenti normali, ho sistemato io.
    Amaro C++, il gusto pieno dell'undefined behavior.

Tag per questa discussione

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.