#include <iostream> //Libreria per l'I/O
#include <cstdlib> //Libreria standard
#include <windows.h> //Libreria che include le API
using namespace std;
main() {
HANDLE hFile; //Handle del file
DWORD FileSize; //Double Word che conterrà il risultato
char cPath[255], *ccPath;
ccPath = new char[255]; //Alloco memoria sufficiente per contenre il Path
//Acquisisco il path del file.
cout << "Inserisci il path del file: ";
cin.getline(cPath, sizeof(cPath));
//Copio il path preso con il buffer, in un (const char*)
strcpy(ccPath,cPath);
//Assegno il riferimento all'handle
hFile = CreateFile(ccPath, GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hFile == INVALID_HANDLE_VALUE) //Se l'handle non è valido, libero la memoria ed esco
{
cout << "\nImpossibile caricare il file, premere un tasto per uscire.";
getchar();
delete [] ccPath;
return -1;
}
//Acquisisco la grandezza del file con la funzione GetFileSize
FileSize = GetFileSize(hFile, NULL);
//Esprimo la grandezza utilizzando varie unità di misura
cout << "\n\nGrandezza del file in byte: " << FileSize << " Byte";
cout << "\nGrandezza del file in KiloByte: " << (FileSize/1024) << " KByte";
cout << "\nGrandezza del file in MegaByte: " << ((FileSize/1024)/1024) << " MByte";
getchar();
//Libero la memoria allocata dinamicamente.
delete [] ccPath;
return 0;
}