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;
return1;
}
std::cout <<"........... ELENCO TUTTI I FILE........... "<<std::endl;
do
{
std::cout << fd.cFileName<<std::endl;
}while(FindNextFile(hFind,&fd));
FindClose(hFind);
return0;
}
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!