Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1

    [C++] - Stampare a video un Elenco di File presenti in una directory

    Salve,
    sto da poco programmando in c++ con IDE Visual Studio 2013 sotto Windows 8.
    Ho trovato molte classi interessanti tipo vector, list, string.

    La mia domanda è questa:
    Esistono classi e metodi in C per aprire una directory (che è sempre la stessa) e stampare a video l'elenco dei file con sola estensione .txt?

    Vi spiego perchè ve lo chiedo:
    Devo creare un programma che salvi una matrice in un file txt e che possa fare il processo inverso, ovvero caricare la matrice da file txt. Io queste 2 cose le so fare, solo che per conoscere il nome di quale file txt da dare in input al programma ho bisogno di sapere l'elenco di tutti i file contenenti matrici presenti in una directory dove appunto salvo questi file.
    Come posso generare a video questo elenco di file?

    Perfavore non mi suggerite costrutti del C semplice, devo programmare con elementi di C++ e ad oggetti.

    Grazie
    Ultima modifica di lello82nap; 15-01-2014 a 22:01

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    C o C++ non ho capito alla fine !

    Comunque, questo tipo di operazioni le fai con le API apposite di Windows per la gestione dei file e delle cartelle.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    mi servono classi e metodi in C++
    nulla riguardante il C

    chiedo scusa è che sto dormendo in piedi a finegiornata e ho sbagliato a scrivere prima

  4. #4
    Due possibilità:
    - FindFirstFile/FindNextFile/FindClose (C, API di Windows)
    - Boost.Filesystem (e in particolare basic_directory_iterator) (C++, portabile, ma libreria a parte da installare)
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Beh, se si tratta di installare librerie, le possibilità aumentano ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Beh, se si tratta di installare librerie, le possibilità aumentano ...
    Naturalmente, consigliavo Boost.Filesystem in particolare perché pare verrà inclusa nel prossimo standard C++ (oltre ad essere portabile e avere una licenza estremamente libera).
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    grazie infinite ragazzi

  8. #8
    RAGAZZI AIUTO!
    sto nel pallone con queste API su FindFirstFile/FindNextFile/FindClose
    sono NEOFITA e mostrano un codice troppo difficile per me

    potete scrivermi un metodo voi?
    in modo che io possa poi trascriverlo in un opportuno file header .h che includerò nel file header della classe dove mi serve di utilizzarlo.

    le caratteristiche del metodo sono queste:
    - la directory è sempre la stessa, è quella dove tengo tutti i file el progetto visual studio.
    - gli unici file da estrarre sono quelli con estensione ".sdk"
    - il metodo deve stampare a video tutti i file sdk presenti nella directory fissa.
    - deve essere un metodo, non un main.

    vi prego aiutatemi voi scrivetemi un metodo funzionante!!! AIUTO

    MItaly mi appello soprattutto a te!!


    Ultima modifica di lello82nap; 18-01-2014 a 13:08

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ma non puoi prendere spunto da codice esistente? Ad esempio

    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    da adattare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10

    [C++] - Problema con metodo di funzione per stampare a video i nomi dei File di un determinato tipo contenuti in una Directory Fissa

    Ho Visual C++ 2013, Ambiente Windows 8 e Linguaggio C++ ad Oggetti

    Devo scrivere un metodo che visualizzi il contenuto di una directory che è sempre la stessa
    ed in particolare stampi a video solo i file che hanno estensione .sdk

    Per risolvere ho trovato un metodo sul vostro forum, che estrae TUTTI I FILE DELLA CARTELLA
    "C:\\Users\\LeLLo\\Documents\\Visual Studio 2013\\Projects\\SudokuNew\\SudokuNew\\*.*"
    io l'ho modificato per estrarre solo i file .sdk

    codice:
    
    int stampaContenutoDirectory(){
    	WIN32_FIND_DATA fd;
    	HANDLE hFind;
    	/* Inizia la ricerca */
    	hFind = FindFirstFile("C:\\Users\\LeLLo\\Documents\\Visual Studio 2013\\Projects\\SudokuNew\\SudokuNew\\*.sdk", &fd);
    	/* Se la FindFirstFile restituisce INVALID_HANDLE_VALUE significa che non ha trovato niente */
    	if (hFind == INVALID_HANDLE_VALUE)
    	{
    		std::cout << "Nessun file trovato o percorso inesistente."<<std::endl;
    		return 1;
    	}
    
    
            std::cout << "........... ELENCO TUTTI I FILE........... "<<std::endl;
    
    
    	do
    	{
    		std::cout << fd.cFileName<<std::endl;
    	} while (FindNextFile(hFind, &fd));
    	FindClose(hFind);
    	return 0;
    }
    IL PROBLEMA E' CHE IL METODO NON FUNZIONA
    mi da errore sul TIPO DI VARIABILI E COSTANTI alle righe righe
    - hFind = FindFirstFile("C:\\Users\\LeLLo\\Documents\\Visual Studio 2013\\Projects\\SudokuNew\\SudokuNew\\*.*", &fd);
    - std::cout << fd.cFileName<<std::endl;

    a questo punto ho posto 2 casting
    - hFind = FindFirstFile((LPCWSTR)"C:\\Users\\LeLLo\\Document s\\Visual Studio 2013\\Projects\\SudokuNew\\SudokuNew\\*.sdk", &fd);
    - std::cout << (const char *)fd.cFileName<<std::endl;

    ed il programma non ha segnalato piu' errori, ed è partito.
    Purtroppo anche in questo caso, il programma con gli opportuni casting non risconosce lo stesso la stringa, non la usa per inizializzare o qualcosa del genere e infatti
    il metodo continua ad entrare nel controllo if (hFind == INVALID_HANDLE_VALUE)
    dicendo che la directory non esiste o non c'è nessun file dentro, come da messaggio,
    ma non è vero!
    ci sono diversi file .sdk dentro.
    ho provato anche a settare la stringa al valore "C:\\Users\\*.*" per far riconoscere tutti i file della cartella radice Users, ma anche lì non trova niente mentre è colmo di file e sottodirectory, e da debugger pure mi rendo conto che non viene letta la stringa contenente il nome della directory.

    VI PREGO AIUTATEMI!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.