Discussione: [ C/C++ ] aiuto
View Single Post
Old 22-02-2005, 21:14   #2
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Usa FindFirstFile, FindNextFile, FindClose e la struttura WIN32_FIND_DATA (cerca su google)

esempio pratico:
Codice:
std::vector<std::string>lastTimeVector;
std::vector<std::string>dirNameVector;

void SearchDirectory(LPCTSTR szDirectory)
{
     std::string strDir = szDirectory + std::string("\\*.*");
     
     WIN32_FIND_DATA data;
     HANDLE hFile = FindFirstFile(strDir.c_str(), &data);
     if (hFile == INVALID_HANDLE_VALUE)
          return;

     do
     {
            // se è una directory
            if( (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)
            {
                   SYSTEMTIME st;
                   FileTimeToSystemTime(data.ftLastWriteTime , &st);

                   TCHAR szData[256];
                   // Formatto la data in questo modo: ora:minuti:secondi:millisecondi giorno numeroGiorno mese anno
                   wsprintf(szData, "%d:%d:%d:%d %d %d %d %d", st.wHour, st.wMinute, st.wSecond, st.wMilliseconds, st.wDay, st.wDayOfWeek, st.wMonth, st.wYear);
                   
                   // inserisco nei due vettori
                   lastTimeVector.push_back(std::string(szData));
                   dirNameVector.push_back( std::string(szDirectory + "\\" + data.cFileName));
                     
                    // cerco nella directory per le subdirectory
                    SearchDirectory(std::string(strDirectory + "\\" + data.cFileName));
            }
     }while(FindNextFile(hFile, &data));
      
     //chiudo l'handle
     FindClose(hFile);
}
Ti ho postato semplicemente il codice per cercare le directory.
Non so se è il metodo più giusto usare due vettori distinti per il nome e per la data, dovresti mettere in ordine il vettore delle data (usa std::sort) e far corrispondere alla data il nome della directory, e quindi scrivere a schermo le prime cinque.
Cmq l'ho scritto adesso, nn ho provato a compilarlo ma dovrebbe andare ciao

Ultima modifica di kk3z : 22-02-2005 alle 21:17.
kk3z è offline   Rispondi citando il messaggio o parte di esso