This also works for files > 4GB:
Code:
WIN32_FIND_DATA fd;
unsigned __int64 iSize = 0;
char szFind[MAX_PATH];
...
//copy file name to szFind
...
HANDLE hFind = FindFirstFile(szFind, &fd);
if (hFind != INVALID_HANDLE_VALUE)
iSize = (((unsigned __int64)fd.nFileSizeHigh) << 32) + (unsigned __int64)fd.nFileSizeLow;
FindClose(hFind);
As for seeking, writing and reading large files I suggest you search google. I don't think that the good old fseek can handle it.