说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在Delphi中获取和修改文件的时间

HTML文档下载 WORD文档下载 PDF文档下载
在Delphi中获取和修改文件的时间

本文介绍了在Delphi中利用系统函数和Windows API函数调用来获取和修改文件的时间信息的方法。

熟悉Windows 95/98的朋友一定经常会用单击鼠标右键的方法来查看所选定的文件的属性信息。在属性菜单中会列出该文件的创建时间、修改时间和访问时间。这些信息常常是很有用的,它们的设置一般都是由操作系统(也就是由Dos/Windows等等)自动完成的,不会让用户轻易修改。

这里,我向大家介绍在Delphi中如何实现文件时间的获取和修改方法。Delphi中提供了很完备的Windows API函数的调用接口,可以方便的进行高级Windows编程。利用Delphi中的FindFirst函数可以得到一个文件的属性记录,该记录中的FindData域中就记载了详细的文件时间信息。然而遗憾的是,FindData中的时间信息是不能直接得到的。因此,本人编写了一个转换函数来完成文件时间格式的转换。下面给出了具体的实现方法,仅供参考:

function CovFileDate(Fd:_FileTime):TDateTime;

{ 转换文件的时间格式 }

var

Tct:_SystemTime;

Temp:_FileTime;

begin

FileTimeToLocalFileTime(Fd

Temp);

FileTimeToSystemTime(Temp

Tct);

CovFileDate:=SystemTimeToDateTime(Tct);

end;

有了上面的函数支持,我们就可以获取一个文件的时间信息了。以下是一个简单的例子:

procdeure GetFileTime(const Tf:string);

{ 获取文件时间,Tf表示目标文件路径和名称 }

const

Model='yyyy/mm/dd

hh:mm:ss'; { 设定时间格式 }

var

Tp:TSearchRec; { 申明Tp为一个查找记录 }

T1

T2

T3:string;

begin

FindFirst(Tf

faAnyFile

Tp); { 查找目标文件 } T1:=FormatDateTime(Model

CovFileDate(Tp.FindData.ftCreationTime)));

{ 返回文件的创建时间 }

T2:=FormatDateTime(Model

CovFileDate(Tp.FindData.ftLastWriteTime)));

{ 返回文件的修改时间 }

T3:=FormatDateTime(Model

Now));

{ 返回文件的当前访问时间 }

FindClose(Tp);

end;

设置文件的时间要复杂一些,这里介绍利用Delphi中的DataTimePicker组件来辅助完成这一复杂的操作。下面的例子利用了四个DataTimePicker组件来完成文件创建时间和修改时间的设置。注意:文件的访问时间用修改时间来代替。使用下面的例子时,请在您的Form上添加四个DataTimePicker组件。其中第一和第三个DataTimePicker组件中的Kind设置为dtkDate,第二个和第四个DataTimePicker组件中的Kind设置为dtkTime.

procedure SetFileDateTime(const Tf:string);

{ 设置文件时间,Tf表示目标文件路径和名称 }

var

Dt1

Dt2:Integer;

Fs:TFileStream;

Fct

Flt:TFileTime;

begin

Dt1:=DateTimeToFileDate(

Trunc(Form1.DateTimePicker1.Date) + Frac(Form1.DateTimePicker2.Time));

Dt2:=DateTimeToFileDate(

Trunc(Form1.DateTimePicker3.Date) + Frac(Form1.DateTimePicker4.Time));

{ 转换用户输入在DataTimePicker中的信息 }

try

FS := TFileStream.Create(Tf

fmOpenReadWrite);

try

if DosDateTimeToFileTime(LongRec(DT1).Hi

LongRec(DT1).Lo

Fct) and

LocalFileTimeToFileTime(Fct

Fct) and

DosDateTimeToFileTime(LongRec(DT2).Hi

LongRec(DT2).Lo

Flt) and

LocalFileTimeToFileTime(Flt

Flt)

then SetFileTime(FS.Handle

@Fct

@Flt

@Flt);

{ 设置文件时间属性 }

finally

FS.Free;

end;

except

MessageDlg('日期修改操作失败!'

mtError

[mbOk]

0);

{ 因为目标文件正在被使用等原因而导致失败 }

end;

end;

以上简单介绍了文件时间属性的修改方法,请注意:修改文件时间的范围是从公元1792年9月19日开始的,上限可以达到公元2999年或更高。另外,请不要将此技术用于破坏他人文件等非正当途径。

联通WO+开放平台“App计费 ” 保障手机应用付费安全 Valve推Lighthouse技术,欲解决VR设备眩晕感 全球移动开发者报告:Swift崛起,物联网大火! 不圈地自萌!10个UX设计经验分享网站推荐 苹果继续改改改!Swift语言何时能稳定? 封闭还是开放?Android Wear离iOS究竟有多远 TIOBE 2015年3月编程语言排行榜:CoffeeScript首次进入TOP 100 2015网页摄影图的六大流行趋势 原生体验挡不住!JavaScript开源跨平台框架NativeScript 自行车,恰到好处的“智能” 联通WO+开放平台:保护消费者权益就是保护移动互联网生态 2015年Google Code Jam编程挑战赛开始报名 Impression Pi:VR头盔的进阶形态 King.com和Halfbrick Studios成功背后的21款工具 五大实用技巧 帮设计师实现高效会议沟通 机遇与挑战并存 Testin进军众测 新增多SIM卡API,Android 5.1 SDK正式发布! 谷歌代码托管平台Google Code将正式关闭 提升Sketch使用效率的6个实用技巧 界面设计原则之一篇:权衡优先级 突出焦点 划分好内容层级 开源的ResearchKit:苹果将如何颠覆未来医疗? CocoaPods 0.36正式发布,实现Swift和iOS 8动态框架支持 C++入门学习书籍推荐 GitHub是如何征服Google、微软和其它公司的 约见越狱大神!2015 MSS移动安全峰会议程披露 Spark 1.3更新概述:176个贡献者,1000+ patches 从游戏设计到星际探险,微软HoloLens全息技术将改变什么? 触摸屏技术未来?详解Apple新手段Force Touch 专访云适配CEO陈本峰:紧跟HTML5热潮,Web组件化知多少? QQ音乐5.0全新设计过程要点解析 GDC 2015感悟:从0到1,VR投入手游开发路漫漫 Delphi Debug捕捉OutputDebugString? 如何往按钮上添加文字? 关于hash查询和冲突处理的问题 有关局域网的一个问题,谁能给小弟正确解答且在24小时之内做出回复的加100分!!1! jsp中遇到的问题 菜鸟有道数组问题请教!!!!!!help,help 哪里有TurboPower for delphi6的控件下载 PERL能写在后台运行并截取键盘输入的脚本吗? 在linux中怎么配置tftp服务 菜鸟有道数组问题请教!!!!!!help,help 希诺! 水园里的菩萨是不是都死光了?怎么我现在看不见水友门散分了? 改了名字,过来测试 请问关于热插拔硬件插拔消息在win98和win2000中有什么不同? 请帮忙解决这个ado+datagrid的查询问题 我写了一个精确定时的类库,有谁要吗? 关于c++若干概念的疑问? 好消息! 关于《Programming Windows with MFC》上的第一个例子,请教,急!!! 高分找软件! 请教:智能ABC输入法的词库保存在哪个文件里面? UNICODE的问题!? ISA问题讨论 让我么来谈谈今年的就业形式吧! 关于2000的2个经典问题。谁知道,请赐教。 系统漏洞and端口扫描的原理? 各位大虾和学习过sql语言的师兄们,小弟请求各位指点迷津!! 请问VARIANT是个什么东西? %%%一个很好的程序员网站%%%,来者都有分◎◎◎ 好烦,我想把高数过了。 请问怎么在文件中删除一行? 请教,用DBGrid连接ADOquery,想在DBGrid里用鼠标可以移动一条记录到另一条记录的上面或下面,应怎做呢? 当一个窗体被创建,被移动,被改变大小时,共发出了哪些消息? %%%一个很好的程序员网站%%%,来者都有分◎◎◎ 各位大虾和学习过sql语言的师兄们,小弟请求各位指点迷津!! %%%一个很好的程序员网站%%%,来者都有分◎◎◎ tikkypeng(一两狂死郎之天衣有缝)进来!!!! 在线等待,如何在DataGrid控件上更新数据? 关于datagrid问题 菜鸟求助 初学Delphi要怎么开始呢?望各位高手赐教! 画时钟,对你来说很容易,对我来说很那个.. xml中华网(www.xmlchina.net)—完全由ASP.net技术实现!! 关于文件二进制查找问题! 菜鸟有道数组问题请教!!!!!!help,help PreparedStatement为什么使用不了参数? 请教,在OUTLOOK中如何得到发信人的E-Mail Address 江苏 淮安的请进 建议程序员杂志对大连的程序员作一个调查 关于 New Collection 类型数组和列表框的问题(急!) 我現在遇到一個怪問題 材料一 英国大百科全书中说;我们所知道的最早的考试制度是中国所采用的选举制度及其早期举行的考试材料二 缙绅虽位极人臣,不由进士者,终不为美(1)材料中的 选举制度 进士 分别指的是 关于氧化亚铁被氧化的问题氧化亚铁在常温下能不能存在(是像铁一样被缓慢氧化还是基本不能存在?)常温空气中的氧化产物是什么?纯氧中和加热条件下呢? 离子化合物和共价化合物都是电解质吗? 科举制度与我国现在的考试制度有什么不同? 碘化氢与稀硝酸反应化学方程式. 分离 Agcl Fecl3 Kcl 要依次加入什么啊加水加KoH加Hcl到最后为什么加Hcl呢加水能把Agcl 弄出来加KoH能和Fecl3 反映生成氢氧化铁和氢氧化钾为什么还加Hcl呢 怎样辨别真假珍珠粉? 稀硝酸与碘化氢反应的化学方程式 简述分离FeCl3,KCl的方法 珍珠粉是什么味道?是不是有点碳酸钙的味道啊,觉得很难喝,而且再水中也不好溶解,请问什么样的珍珠粉是真品 碘化氢和硝酸是否共存 怎么向英国皇家化学学会提交答案 苯不能使少量酸性高锰酸钾溶液褪色,但苯的同系物能使少量酸性高锰酸钾溶液褪色,下列解释正确的是A.苯的同系物中原子数比苯分子中原子数多 B.苯环受侧链的影响而易被KMnO4氧化 C.侧链受 硝酸亚铁与碘化氢的反应这个东西能反应?怎么反应的?还有HCL+NANO3 也能?我晕,为什么啊 英国皇家化学学会的宪章内容具体有哪些? 氯化铝为什么是共价化合物?用高中的知识能证明吗?没学配位键那得 硝酸铁和少量碘化氢反应方程式 氯化铝熔融状态下能否电离? 汞由几个汞原子组成还是直接组成 有失去标签的硝酸钙,稀盐酸,硝酸银,碳酸钠和氯化钡五瓶溶液,任意编号:A B C D E,两两混合进行实验,其现象如下表:A+B 产生沉淀 B+C产生沉淀 B+D产生沉淀 C+D产生气体 D+E产生沉淀 试推断并写出 氯化铝在熔融状态可以电离吗 为什么有些物质是由分子组成(例如水,酒精)而又有一些物质是由原子直接构成(如汞)?各位用初三的知识回答噢:) 要不然偶看不懂了 仲醇能被酸性高锰酸钾氧化成酸么? 溶于水后不发生电离的化合物是共价化合物.书上写着..氯化铝不是共价化合物吗?他好像可以的吧? 为什么氯化铝是共价化合物而不是离子化合物? 含醇量是个什么概念,比如松油醇的含醇量是怎么解释呢? 汞的组成是什么? 汞是由原子构成的对吗 氯化铝能在水溶液中电离吗?即使说氯化铝能在水溶液中电离,但是在工业中为什么要用氧化铝而不是氯化铝,氧化铝的熔点要比氯化铝高啊,我们老师说氯化铝是分子晶体在熔融状态下不电离( 由锌、铁、铝、镁四种金属中的两种组成的混合物10g,与足量的盐酸反应产生0.1g氢气,则混合物中中一定含有的金属是A、锌 B、铁 C、铝 D、镁 为什么AlCl3不是离子化合物而是共价化合物? 电离氯化铝溶液电解氯化铝溶液,其中有的现象是:两极出现气泡,阴极出现白色沉淀.然后沉淀消失一部分,但消失不完.前两个现象可以理解,我不明白的是溶液中哪有多余的氢氧根和沉淀反应? 氯化铝是强电解质还是弱电解质? 为什么alcl3不是离子化合物 AlCl3和HCl都是共价化合物,为什么HCl溶于水可以电离而AlCl3却不行 Al203 和AlCl3是不是强电解质啊为什麽和碱溶液反应写成电离方程式,Al2O3不拆开啊 西周的分封制有何作用?在分封制下,周天子与诸侯的关系怎样?这是初一年级的历史基训上的题目 孙中山三民主义学说的主要内容(简答) AlCl3,AgCl,AgBr,AgI是强、弱电解质? 分封制 分封制目的( ) 分封制的内容:( )( )和( ) 分封对象( ) 作用( ) 硼离子的化学式 AlCl3是强电解质 完全电离后水解 周王的分封制分封在什么流域? 硼化硅的化学式 英国资产阶级革命 经历了多长时间 分封制分什么等级?如:周天子.之后是什么?这个等是怎样形成的?有什么作用? ALCL3为共价化合物于水中不电离,可为什么可以和NAOH反应 美国、英国、澳大利亚建国以来各有多少年历史? 要初中到高中课本上出现的各种物质的化学性质和物理性质? 怎样用碳酸钠鉴别硫酸钠,氢氧化钠,硫酸 英国有多少年历史? 英国皇室姓氏有哪些,越多越好 氧化亚铁、四氧化三铁分别和碘化氢反应的方程式氧化铁呢 共价化合物.离子化合物与电解质.非电解质的关系?为什么有这么一说:非电解质是共价化合物那酸应该都是共价化合物吧,可酸也是电解质啊那到底什么共价化合物是电解质什么共价化合物不 英国大百科全书说:“我们所知道的最早的考试制度,是中国所采用的选举制度,及其定期举行的考试.”许多皇帝对这一制度的完善做出了重大贡献,你能完成下列内容吗?( )即位后大大扩充 如何防止氧化亚铁被氧化?简写过程在线等 怎么区分离子化合物和共价化合物(用有关电解质的知识)什么熔融状态下什么的 英国皇室的姓氏有哪些?英国皇室的姓氏有哪些,要属于伯爵一类的. 求氧化亚铁、氧化铁、四氧化三铁与碘化氢反应的方程式 离子化合物,共价化合物,电解质,非电解质之间的关系我知道应该是对化合物的两种不同分类方法.需要知道各类下具体有什么,什么氧化物啊,强酸弱酸都应该分到那里啊?有没有图可以说明的?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘