Я до этого уже было пробовал с помощью 
WIN32_FILE_DATA узнавать размер файла, но ничего, кроме 0 (нуля), не получил. Не знаю почему.
Код
			__int64 file_size = 0;
			{
				HANDLE hFile;
				char * file = stringConstPtrToPtr(sSource.c_str()); // sSource - string
				LPTSTR lpcTheFile = TEXT(file);
				hFile = CreateFile(lpcTheFile,
				                   GENERIC_READ,
				                   0,
				                   NULL,
				                   CREATE_ALWAYS,
				                   FILE_ATTRIBUTE_NORMAL,
				                   NULL);
				delete [] file;
				file = 0;
				if (hFile != INVALID_HANDLE_VALUE)
					file_size = GetFileSize(hFile, NULL);
				CloseHandle(hFile);
			}
почему-то всё время возвращает 0  
