Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
GetFileSize - getfilesize.cpp

getfilesize.cpp

Caricato da:
Scarica il programma completo

  1. #include <iostream> //Libreria per l'I/O
  2. #include <cstdlib> //Libreria standard
  3. #include <windows.h> //Libreria che include le API
  4. using namespace std;
  5.  
  6. main() {
  7.        
  8. HANDLE hFile; //Handle del file
  9. DWORD FileSize; //Double Word che conterrà il risultato
  10. char cPath[255], *ccPath;
  11. ccPath = new char[255]; //Alloco memoria sufficiente per contenre il Path
  12.  
  13. //Acquisisco il path del file.
  14. cout << "Inserisci il path del file: ";
  15. cin.getline(cPath, sizeof(cPath));
  16.  
  17. //Copio il path preso con il buffer, in un (const char*)
  18. strcpy(ccPath,cPath);
  19.  
  20. //Assegno il riferimento all'handle
  21. hFile = CreateFile(ccPath, GENERIC_READ | GENERIC_WRITE,
  22. FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  23.  
  24. if (hFile == INVALID_HANDLE_VALUE) //Se l'handle non è valido, libero la memoria ed esco
  25. {
  26. cout << "\nImpossibile caricare il file, premere un tasto per uscire.";
  27. getchar();
  28. delete [] ccPath;
  29. return -1;
  30. }
  31.  
  32. //Acquisisco la grandezza del file con la funzione GetFileSize
  33. FileSize = GetFileSize(hFile, NULL);
  34.  
  35. //Esprimo la grandezza utilizzando varie unità di misura
  36. cout << "\n\nGrandezza del file in byte: " << FileSize << " Byte";
  37. cout << "\nGrandezza del file in KiloByte: " << (FileSize/1024)  << " KByte";
  38. cout << "\nGrandezza del file in MegaByte: " << ((FileSize/1024)/1024) << " MByte";  
  39. getchar();
  40.  
  41. //Libero la memoria allocata dinamicamente.
  42. delete [] ccPath;
  43. return 0;
  44. }