C++でファイルサイズ取得
C++でファイルサイズを取得する
// for win32api #include <Windows.h> // for ifstream #include <fstream> // for stat #include <sys/types.h> #include <sys/stat.h> int main(int argc, char* argv[]) { const char* filepath = "C:\\Windows\\Media\\Windows Shutdown.wav"; // for win32api HANDLE hFile = CreateFile(filepath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); DWORD size1 = GetFileSize(hFile, NULL); CloseHandle(hFile); printf("GetFileSize :%ld\n", size1); // for ifstream std::ifstream ifs(filepath, std::ios::binary); ifs.seekg(0, std::ios::end); auto eofpos = ifs.tellg(); ifs.clear(); ifs.seekg(0, std::ios::beg); auto begpos = ifs.tellg(); auto size2 = eofpos - begpos; printf("ifstream :%ld\n", size2); ifs.close(); // for stat struct _stat buf; int result = _stat(filepath, &buf); if (result == 0) { printf("stat :%ld\n", buf.st_size); } return 0; } 結果 GetFileSize :169444 ifstream :169444 stat :169444