在DELPHI程序中如何获取文件的大小和文件的修改时间?

jsandy 2003-02-08 06:21:08
在DELPHI程序中如何获取文件的大小和文件的修改时间?
...全文
423 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
goomoo 2003-02-09
  • 打赏
  • 举报
回复
最好的方法,使用api 函数:SHGetFileInfo
ehom 2003-02-09
  • 打赏
  • 举报
回复
var
FDateTime:TDateTime;
F,FSize:LongInt;

F:=FileOpen(FileName,fmOpenRead);
FSize:=FileSeek(F,0,2);
FDateTime:=FileDateToDateTime(FileGetDate(F));
jog81 2003-02-09
  • 打赏
  • 举报
回复
文件的大小可以这样取
procedure TForm1.Button1Click(Sender: TObject);
var
hFile : Integer;
begin
hFile:=CreateFile(PChar(edit1.Text), GENERIC_READ, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Edit2.Text := IntToStr(GetFileSize(hFile, 0) div 1024)+'KB';
end;
jsandy 2003-02-09
  • 打赏
  • 举报
回复
getfilesize
getfiletime

这两个东东怎么用的啊?
grail_ 2003-02-08
  • 打赏
  • 举报
回复
可以用api函数
getfilesize
getfiletime
Billy_Chen28 2003-02-08
  • 打赏
  • 举报
回复
获取文件的大小
function FileLength(Filename:string):integer;
var
fp:file of byte;
begin
AssignFile(fp,Filename);
Reset(fp);
Result := FileSize(fp);
CloseFile(fp);
end;
或者
var
hFile : Integer;
begin
hFile:=CreateFile(PChar('c:\temp\a.htm'), GENERIC_READ, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Edit1.Text := IntToStr(GetFileSize(hFile, 0));
Billy_Chen28 2003-02-08
  • 打赏
  • 举报
回复
获取文件修改时间:
function GetFileLastAccessTime(sFileName:string;uFlag:byte):TDateTime;
var
ffd:TWin32FindData;
dft:DWord;
lft:TFileTime;
h:THandle;
begin
h:=FindFirstFile(PChar(sFileName),ffd);
if h<>INVALID_HANDLE_VALUE then
begin
case uFlag of
FILE_CREATE_TIME:FileTimeToLocalFileTime(ffd.ftCreationTime,lft);
FILE_MODIFY_TIME:FileTimeToLocalFileTime(ffd.ftLastWriteTime,lft);
FILE_ACCESS_TIME:FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);
else
FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);
end;
FileTimeToDosDateTime(lft,LongRec(dft).Hi,LongRec(dft).Lo);
Result:=FileDateToDateTime(dft);
windows.FindClose(h);
end
else
result:=0;
end;

GetFileLastAccessTime()将会以 Delphi的 TdateTi
me格式返回你所指定的文件的最后访问日期
Windows的通用应用程序的类名 使用API函数复制移动文件 使用API访问ListBox项 使用GetTempFileName创建一个唯一的临时文件 使用INI文件 使用INI文件保存、装载字体信息 使用TFileStream 使用TStream保存字符串 使用TTreeview显示目录 使窗体的关闭按钮失效 修改文本文件 允许在资源管理器拖放文件 减小EXE文件大小 列举驱动器 列出目录下的子目录 创建快捷方式 创建目录 删除文件到回收站 判断文件夹是否共享 剪贴板存放多个控件流 加载CDROM图标 压缩和解压流 取MP3的ID3-Tag 取Program files目录 取可执行文件类型 取和文件类型关联的应用程序 取当前程序所在目录 取指定文件的版本信息 取文件修改日期 取文件日期 取文件最后访问日期 取文件版本号 取文件的所有者 取目录大小 取磁盘可用空间和总空间 取设置当前目录 取设置文件夹的日期 向Exe文件添加数据 向文件写添加文本 在TMemo光标位置插入一个文件 在Windows开始后自动运行一个程序 在应用程序添加Exe文件并且执行 在文件搜索字符串 在文件搜索指定文本 在文本文件搜索文本 将剪贴板复制到流和恢复 将文本文件赋值给一个字符串 将资源文件Rft文本装载到TRichEdit 将长文件名转换成短文件名 彻底删除文件 打开资源管理器且显示指定文件夹 捕获DOS应用程序的输出 改变TPageControls的颜色 改名、移动、删除文件或目录 显示‘打开方式’对话框 显示文件属性对话框 显示目录选择对话框 显示目录选择对话框并指定初始目录 替换正运行的DLL 检查文件是否ASCII格式 检查文件是否在本地驱动器 检查文件是否已打开 检查文件是否正在使用 检查目录是否存在 比较两个文件是否相同 添加去掉路径名后的符号 添加文件到文档菜单 清空文档 获取文件类型 获得快捷方式信息 获得文件大小 计算文件的校验和 设置文件日期 读 table-textfile 到 StringGrid 读取二进制文件使用ASCII显示 转换OEM到ANSI 转换短文件名为长文件名 运行一个程序或打开一个关联文件 返回UNC路径 通过CRC-32验证文件
自己用Delphi7写的一个小程序Show ALL-Files.exe,通过写入注册表来恢复系统有关文件显示部分的默认注册表内容,并显示系统隐藏文件。注:需要系统管理员权限,方可正常修改注册表。 Show ALL-Files(附Delphi7源码).rar 文件大小:319KB 附注: 很多恶意软件和病毒伪装成系统隐藏文件,并通过修改注册表阻止用户显示系统隐藏文件,来达到不被删除的目的。 “文件夹选项”的显示隐藏文件,显示系统文件,显示文件后缀,分别是通过注册表 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]下面的"Hidden","ShowSuperHidden","HideFileExt"项来控制的。 (类型均为REG_DWORD双字节值,系统默认值分别为2,0,1) 但是要实现通过“文件夹选项”来修改这些选项,还必须先分别通过注册表对应项的检测[HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SuperHidden] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\HideFileExt] (均是"CheckedValue"项,类型均为REG_DWORD双字节值,系统默认值分别为1,0,1) 而这道检测往往成为恶意软件和病毒攻击对象,通过篡改数值,类型,甚至删除注册表项,来隐藏“文件夹选项”的控制项,或使其错乱,修改无效等。
汉化说明 与许多初学者一样,我在开始学习Delphi时,面对全英文的界面,很是不习惯。在Delphi5.0时就开始对Delphi进行汉化。但效果并不明显,也就没好意思拿出来。但心总是感到有些遗憾,为什么Delphi这样好的编辑工具,始终不推出简体文版呢? 一直等到Delphi7.0时,Smallfish终于等不住了,为了Delphi在华夏大地上的传播与推广,SmallFish决定自己动手,汉化出真正属于国人的简体Delphi程序开发工具。 SmallFish通过几个星期的艰苦奋战,在Delphi7.06的英文版的基础上,终于推出了现今汉化最好的Delphi7.0简体文版。 Delphi7资源汉化包的源文件SmallFish汉化的部分是*.bpl、*.exe及其它文件,而Lib文件及Source文件文件是LiWD完成的,我也加到了我的文件,在此表示感谢!为了表示对他劳动的尊重,将他汉化时的文字在后面附加了。 下面,向大家介绍一下使用方法,首先关闭Delphi7.0的运行,打Winsystem文件夹下的所有文件,覆盖到系统目录下(如C:WindowsSystem);然后,将Bin、Lib文件夹下的所有文件覆盖到Delphi安装目录的Bin。至于Source文件,可以覆盖到相应文件,也可以不做任何操作。 为了减少大家的开支,我将文件大小尽可能缩小,也不得已使用可执行程序压缩工具对.Exe文件、.Bpl文件进行压缩。但还是很大,请大家原谅。如果想修改,可以以下面的邮件地址向我索取没有压缩的文件,我会抽时间发给你们。 最后,要说明的是,汉化到现在,发现要推出完全汉化的Delphi,以我的精力和能力来说,还要等一定时间。因为需要汉化的资源太多,以典型安装为例,可能需要汉化的文件多达200个左右,而且是都是DELPHI程序,无法借助字典批量翻译,工作量实在巨大。同时随汉化的深入,发现许多要翻译的字符没有把握准确译出,恐怕翻译后让大家更糊涂,加上马一就要毕业答辨,我只好暂时把汉化工作停一下,只是将手头现有的部分拿出来与大家共享,因水平有限,翻译错误在所难免,请不吝指教!以便我日后推出汉化Delphi时,做最后的修正。 我汉化Delphi不是为了出名。没有任何商业目的,不希望出现Delphi简体文版应用于商业的现象发生,但为了表明大家对我的工作尊重,也不要修改我在可执行文件版本信息加的一行字-汉化:SmallFish。如果向朋友推广,也不要把我编写的汉化说明删除,我只是想通过这样的一个难得机会,结识更多像我一样酷爱Delphi的网友。 如果你有什么好的建议,请给我发电子邮件电子邮件地址SmallFish@0335.net或LiYuguo@0335.net,我尽量抽时间回答网友的提问。不要向我要Oicq或其它联系方式,恕我不公开。常见问题: 1.为什么汉化Delphi7.0在运行时菜单没有快捷键但按下Alt键后,就有了。能不能改进一下? 答:这是Delphi7.0本身的原因,并不是我汉化资源文件有误,不信你将Delphi文件覆盖回去试试,一样存在此问题。 2.为什么编译信息一部分是英文,另一部分是文? 答:这是因为我汉化不完全造成的。 3.什么时候会推出Delphi7.0的其它汉化资源? 答:时间不会太长,只要大家支持。 4.如果我向你的信箱发送其它控件的汉化请求,能不能帮我完成? 答:如果时间允许,控件好用,我会满足您的要求,但有一个条件,留下您的联系方式,交一个朋友。:)附:网友LiWD原文汉化说明 这是Delphi7的一些资源文件的汉化,是我从Delphi6改编的,由于英文水平有限,错误在所难免,并且有些单元没有汉化,如果你修改或汉化了其他单元,别忘了给我一份! 用Delphi7 打开 Project1.dpr, 进行编译,即可得到相应的dcu文件! 上传:李岚文 QQ:270181856 E_-mail:llw.lz@126.com 曾上传作品:柯龙进销存 希望能给初学Delphi 7的朋友带来帮助 ^_^

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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