文件>4G,如何取得其长度?

GeoPhoenix 2004-12-31 11:41:06
如题,顺便祝诸位夜猫子新年快乐!来者有份!
...全文
174 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iYoung 2005-01-03
  • 打赏
  • 举报
回复
BOOL GetFileSizeEx(
HANDLE hFile,
PLARGE_INTEGER lpFileSize
);
yjy1001 2005-01-02
  • 打赏
  • 举报
回复
容易…… 呵呵:
FileSeek 有2个版本:
int __fastcall FileSeek(int Handle, int Offset, int Origin);
__int64 __fastcall FileSeek(int Handle, const __int64 Offset, int Origin);

究竟调用那个版本,在于函数的第2个参数的类型。你的文件大小超过4G,肯定要使用第二个
版本才行,所以第二个参数必须为__int64。因此应该这样写:
__int64 HSFileLenght = FileSeek(HiFile, 0i64, 2);

这样就可以读到文件大小了
samchoy 2005-01-01
  • 打赏
  • 举报
回复
新年快乐!接分快乐!
DebugAnyway 2005-01-01
  • 打赏
  • 举报
回复

winbase.h里可以看到一个好API

WINBASEAPI
DWORD
WINAPI
GetFileSize(
IN HANDLE hFile,
OUT LPDWORD lpFileSizeHigh
);

入口参数:文件句柄
出口:返回文件大小的低32位,同时将文件大小高32位赋给lpFileSizeHigh指向的单元.
其实API关于文件大小的操作都是64位的!4G*4G~~~
Javpp 2005-01-01
  • 打赏
  • 举报
回复
学习,接分
weill 2005-01-01
  • 打赏
  • 举报
回复
变态,这么大的文件!
在FAT16下一定出错,呵呵。

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧