Delphi中获取文件大小

大概有这些方法可以获得文件大小
FileSizeByName(需要引用IdGlobal单元)
GetFileSize
FileSize(不能获得正在使用的文件大小)
FileSeek
TFileStream.Size

下面是使用例子
1。FileSizeByName(需要引用IdGlobal单元)
begin
if OpenDialog1.Execute then
begin
ShowMessage(IntToStr(FileSizeByName(OpenDialog1.Filename)));
end;

2。GetFileSize
var
FileHandle:integer;
begin
if OpenDialog1.Execute then
begin
FileHandle := FileOpen(OpenDialog1.FileName, 0);
ShowMessage(IntToStr(GetFileSize(FileHandle, nil)));
FileClose(FileHandle);
end;

3。FileSize(不能获得正在使用的文件大小)
var f: file;
begin
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName);
Reset(f, 1);
ShowMessage(IntToStr(FileSize(f)));
CloseFile(f);
end;

4。FileSeek
var
FileHandle:integer;
begin
if OpenDialog1.Execute then
begin
FileHandle := FileOpen(OpenDialog1.FileName, 0);
ShowMessage(IntToStr(FileSeek(FileHandle,0,2)));
FileClose(FileHandle);
end;

5。TFileStream.Size
var
FS: TFileStream;
begin
if OpenDialog1.Execute then
begin
FS := TFileStream.Create(OpenDialog1.FileName, fmShareDenyNone);
ShowMessage(IntToStr(FS.Size));
FS.Free;
end;

另在IdGlobalProtocols中有个FileSizeByName()的函数。

posted @   tc310  阅读(4200)  评论(0编辑  收藏  举报
编辑推荐:
· 你所不知道的 C/C++ 宏知识
· 聊一聊 操作系统蓝屏 c0000102 的故障分析
· SQL Server 内存占用高分析
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
阅读排行:
· 我干了两个月的大项目,开源了!
· 千万级的大表,如何做性能调优?
· 推荐一款非常好用的在线 SSH 管理工具
· 盘点!HelloGitHub 年度热门开源项目
· Phi小模型开发教程:用C#开发本地部署AI聊天工具,只需CPU,不需要GPU,3G内存就可以运行,
点击右上角即可分享
微信分享提示