VC获取文件大小的一些问题

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);
}


付一些可以获取文件大小的类、结构体、函数:CFileStatus【m_size】、CFile、CStdioFile、WIN32_FIND_DATA【nFileSizeLow】、GetFileSize、CFileFind、_stat【st_size】、_filelength、filelength、_lseek(fp,0,SEEK_END)等等……

可参见:http://www.cnblogs.com/cxun/archive/2009/02/24/1397153.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值