Zdziwiony Temat założony przez niniejszego użytkownika |
[C++] Jak sprawdzić rozmiar pliku » 2014-04-02 15:58:52 Witam. Mam do Was pytanie takie jak w temacie tj. Jak sprawdzić wielkość DOWOLNEGO pliku z poziomu języka C++ ?
Pozdrawiam. |
|
pekfos |
» 2014-04-02 16:09:25 GetFileSizeEx() |
|
Zdziwiony Temat założony przez niniejszego użytkownika |
» 2014-04-02 16:30:04 Jeśli można zapytać, to czy istnieje może też funkcja do odczytu rozmiaru całego katalogu ? Byłoby to o niebo wygodniejsze :) |
|
Zdziwiony Temat założony przez niniejszego użytkownika |
» 2014-04-02 18:38:35 No cóż coś "skleciłem" oto kod, który w zamierzeniu ma policzyć wielkość wszystkich plików w folderze i wyświetlić ilość bajtów. kod: void Rozmiar() { char SHGFP_TYPE_CURRENT; char AppDataFolder[ MAX_PATH ]; SHGetFolderPathA( 0, CSIDL_LOCAL_APPDATA, 0, SHGFP_TYPE_CURRENT, AppDataFolder ); string temp, temp2, temp3, plik; long long rozmiar, rozmiar2, rozmiarplus; rozmiar2 = 0; temp2 = AppDataFolder; temp = temp2 + "\\Temp\\*.*"; temp3 = temp2 + "\\Temp\\"; _finddata_t danePliku; long uchwyt = _findfirst( temp.c_str(), & danePliku ); int SzukamDalej = _findnext( uchwyt, & danePliku ); do { SzukamDalej = _findnext( uchwyt, & danePliku ); plik = temp3 + danePliku.name; fstream fs; fs.open( plik.c_str(), ios::binary | ios::in ); fs.seekg( 0, ios::end ); rozmiar = fs.tellg(); fs.seekg( 0, ios::beg ); rozmiarplus = rozmiar2 + rozmiar; } while( SzukamDalej != - 1 ); ostringstream ss; ss << rozmiarplus; string str = ss.str(); string liczba; liczba = "Usunięto:~ " + str + " bajtów"; cout << liczba << "\n" << plik << "\n"; system( "pause" ); } Efekt działania kodu: Wielkość wszystkich plików w folderze to -1.... Podpowie ktoś gdzie jest błąd ? (sądzę, że robię coś źle przy sumowaniu rozmiarów, ale nie wiem jak to poprawić) Pozdrawiam. |
|
pekfos |
» 2014-04-02 18:48:17 Sumowania rozmiarów tu w ogóle nie ma. |
|
Zdziwiony Temat założony przez niniejszego użytkownika |
» 2014-04-02 18:52:51 W moim zamierzeniu : char SHGFP_TYPE_CURRENT; char AppDataFolder[ MAX_PATH ]; SHGetFolderPathA( 0, CSIDL_LOCAL_APPDATA, 0, SHGFP_TYPE_CURRENT, AppDataFolder ); string temp, temp2, temp3, plik; long long rozmiar, rozmiar2, rozmiarplus; rozmiar2 = 0; temp2 = AppDataFolder; temp = temp2 + "\\Temp\\*.*"; temp3 = temp2 + "\\Temp\\"; _finddata_t danePliku; long uchwyt = _findfirst( temp.c_str(), & danePliku ); int SzukamDalej = _findnext( uchwyt, & danePliku ); do { SzukamDalej = _findnext( uchwyt, & danePliku ); plik = temp3 + danePliku.name; fstream fs; fs.open( plik.c_str(), ios::binary | ios::in ); fs.seekg( 0, ios::end ); rozmiar = fs.tellg(); fs.seekg( 0, ios::beg ); rozmiarplus = rozmiar2 + rozmiar; } while( SzukamDalej != - 1 );
ostringstream ss; ss << rozmiarplus; string str = ss.str(); string liczba; liczba = "Usunięto:~ " + str + " MB"; cout << liczba << "\n" << plik << "\n"; system( "pause" );
A w rzeczywistości to nic nie robi ;o ? W takim razie jak mam to sumować ? |
|
« 1 » |