#ifndef STIM_UTIL_FILESIZE_H #define STIM_UTIL_FILESIZE_H #ifdef _WIN32 #include #else #include #include #endif namespace stim{ static size_t file_size(std::string filename){ #ifdef _WIN32 HANDLE hFile = CreateFile(filename.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile == INVALID_HANDLE_VALUE) return 0; LARGE_INTEGER size; if(!GetFileSizeEx(hFile, &size)){ CloseHandle(hFile); return 0; } CloseHandle(hFile); return (size_t)size.QuadPart; #else struct stat sb; stat(filename.c_str(), &sb); return sb.st_size; #endif } } //end namespace stim #endif