[C++]stampa directory cartella

di il
10 risposte

[C++]stampa directory cartella

Si vuole compilare un programma in C++ che ci permetta di trovare il percorso di una cartella (non un file, una cartella) e stamparlo sullo schermo.

Io sono riuscito a compilare un programma che fa lo stesso ma con i file, ma non può essere usato per trovare cartelle:
void DirSearch(String* sDir)
	 {
		 try
		 {
			 String* d[] = Directory::GetDirectories(sDir);
			 int numDirs = d->get_Length();

			 for (int i=0; i < numDirs; i++)
			 {
				
				 String* f[] = Directory::GetFiles(d[i],textBox1->Text);
				 int numFiles = f->get_Length();

				 for (int j=0; j < numFiles; j++)
				 {
					 listBox1->Items->Add(f[j]);
				 }
				 DirSearch(d[i]);
			 }
		 }
		 catch (System::Exception* e)
		 {
			 MessageBox::Show(e->Message);
		 }
	 }

10 Risposte

  • Re: [C++]stampa directory cartella

    Che vuol dire "trovare il percorso di una cartella" ?? Cerca di spiegare meglio il problema ...

    E poi, lo devi fare con C++.NET ?
  • Re: [C++]stampa directory cartella

    Possibilmente in C oppure in C++ io non so nulla di C# o visual basic (in parole povere niente C++.net)

    Mi spiego meglio
    si vuole inserire una variabile di ricerca la quale una volta avviato il programma verrà assegnato il percorso della la cartella che si vuole trovare e alla fine la variabile verrà stampata sullo schermo

    Flow chart:

    Inserisci la cartella da cercare;
    Ricerca della cartella nel sistema;
    Stampa percorso cartella;
  • Re: [C++]stampa directory cartella

    Puoi utilizzare FindFirstFile() e FindNextFile() per attraversare tutti i file e cartelle.
  • Re: [C++]stampa directory cartella

    Però devi deciderti ... Il codice che hai mostrato è .net ...
  • Re: [C++]stampa directory cartella

    Se vuoi farlo in C++ puoi usare la collezione di librerie Boost.
  • Re: [C++]stampa directory cartella

    candaluar ha scritto:


    Puoi utilizzare FindFirstFile() e FindNextFile() per attraversare tutti i file e cartelle.
    E si può avere la possibilità di inserire nel campo di ricerca il nome di una cartella?
    tipo per esempio voglio inserire nel campo di ricerca la cartella "Giochi"
    lui mi troverà la cartella o i file che contiene la cartella? perchè a me interessa manipolare solo la cartella e non i file che contiene
  • Re: [C++]stampa directory cartella

    Leggi la documentazione delle funzioni, la prima



    prevede un puntatore ad una struttura WIN32_FIND_DATA in cui c'è il membro dwFileAttributes che ti dice tutto
  • Re: [C++]stampa directory cartella

    E si può avere la possibilità di inserire nel campo di ricerca il nome di una cartella?
    tipo per esempio voglio inserire nel campo di ricerca la cartella "Giochi"
    lui mi troverà la cartella o i file che contiene la cartella? perchè a me interessa manipolare solo la cartella e non i file che contiene
    La coppia FindFirstFile()/FindNextFile() ti permettono di "listare" il contenuto di una cartella, ovvero files e sottocartelle: scrivendo una semplice funzione ricorsiva puoi listare poi il contenuto delle sottocartelle e, in definitiva, partendo ad esempio da c:\, potresti listare tutto il contenuto di c:\.
    Sta a te scrivere quella parte di codice che verifica che l'elemento corrente è una directory (lo vedi dal dwFileAttribute) e si tratta della cartella che stai cercando (es. con strcmp()).
    Qui c'è un esempio d'uso:
    http://www.pierotofy.it/pages/extras/forum/2/38187-problema_visualizzare_i_file_in_una_directory/
  • Re: [C++]stampa directory cartella

    candaluar ha scritto:


    E si può avere la possibilità di inserire nel campo di ricerca il nome di una cartella?...
    La coppia FindFirstFile()/FindNextFile() ti permettono di "listare" il contenuto di una cartella, ovvero files e sottocartelle: scrivendo una semplice funzione ricorsiva puoi listare poi il contenuto delle sottocartelle e, in definitiva, partendo ad esempio da c:\, potresti listare tutto il contenuto di c:\.
    Sta a te scrivere quella parte di codice che verifica che l'elemento corrente è una directory (lo vedi dal dwFileAttribute) e si tratta della cartella che stai cercando (es. con strcmp()).
    Qui c'è un esempio d'uso:
    http://www.pierotofy.it/pages/extras/forum/2/38187-problema_visualizzare_i_file_in_una_directory/
    E posso in qualche modo assemblare il percorso ottenuto dalle due funzioni con la funzione copy file? Nel caso in cui volessi trasferire la cartella giochi in una periferica esterna per esempio?
  • Re: [C++]stampa directory cartella

    Certo
Devi accedere o registrarti per scrivere nel forum
10 risposte