如何取得指定文件名的大小?
问题点数:20、回复次数:6Top
1 楼boilpoint(常用对数)回复于 2001-05-20 16:35:00 得分 5
没有相关的api函数吗?
GetFileSize
VB声明
Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
说明
判断文件长度
返回值
Long,返回文件长度。&HFFFFFFFF表示出错。注意如lpFileSizeHigh不为NULL,且结果为&HFFFFFFFF,那么必须调用GetLastError,判断是否实际发生了一个错误,因为这是一个有效的结果
参数表
参数 类型及说明
hFile Long,文件的句柄
lpFileSizeHigh Long,指定一个长整数,用于装载一个64位文件长度的头32位。如这个长度没有超过2^32字节,则该参数可以设为NULL(变成ByVal)
这是关于vb的,不过api大同小异,再查查相关帮助
Top
2 楼pms(高山流水)回复于 2001-05-20 16:59:00 得分 5
给你个纯C的:
fp=fopen("filename","rb")
fseek(fp, 0L, SEEK_END);
len=ftell(fp); /*文件filename的长度*/
fseek(fp, 0L, SEEK_SET);Top
3 楼Raptor(猛禽)回复于 2001-05-20 17:47:00 得分 10
有BCB特色的:
TFileStream * fs = new TFileStream( "filename", fmOpenRead );
//fs->Size 即为文件大小
delete fs;Top
4 楼Wingsun(孙春阳)回复于 2001-05-20 19:16:00 得分 0
对就是这么一些了。Top
5 楼xycleo()虚竹和尚()回复于 2001-05-20 22:11:00 得分 0
DWORD GetFileSize(
HANDLE hFile, // handle of file to get size of
LPDWORD lpFileSizeHigh // address of high-order word for file size
);Top
6 楼boilpoint(常用对数)回复于 2001-05-22 21:37:00 得分 0
谢谢Top




