VC获取文件大小的一些问题
vc获取文件大小的方式太多了,这里不举例说明了。我说说我遇到的一个小问题,功能是统计一个文件的大小,通常做法如下:
CFile file;
if(file.Open(_T("test.doc"),CFile::modeRead))
DWORD fileSize = file.GetLength();
file.Close();
这时如果该文件下有文件是打开的,那么该函数就获取不到所打开文件的实际大小。原因是我采用的解决办法是,使用句柄,那么它在获取文件的大小是该文件在硬盘所占空间,跟其所处的状态无关(打开或关闭),代码:
HANDLE handle = CreateFile(_T(""), FILE_READ_EA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
if (handle != INVALID_HANDLE_VALUE)
{ DWORD fileSize = GetFileSize(handle, NULL);
CloseHandle(handle);
}
可参见:http://www.cnblogs.com/cxun/archive/2009/02/24/1397153.html