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.
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.