Programming Tips - What's the best way to get the size of a file on Windows?

Date: 2011oct6 Platform: Windows Language: C/C++ Keywords: win32, win64 Q. What's the best way to get the size of a file on Windows? A. If the file is not already open use GetFileAttributesEx() It returns a 64 bit integer which supports files well over 4GB.
LONGLONG FileSize(LPCTSTR szFileName, const LONGLONG lDefault = -1) { WIN32_FILE_ATTRIBUTE_DATA info; LARGE_INTEGER large; if (!GetFileAttributesEx(szFileName, GetFileExInfoStandard, &info)) { return lDefault; } large.u.HighPart = info.nFileSizeHigh; large.u.LowPart = info.nFileSizeLow; return large.QuadPart; } void ExampleUse(LPCSTR szFile) { printf("Your file is %I64d bytes\n", FileSize(szFile)); }
There is also a stat64() function.