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

在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年或更高。另外,请不要将此技术用于破坏他人文件等非正当途径。

【技术文章】微信公众平台开发教程新手解惑40则 Qualcomm承诺投入1.5亿美元 扶持中国初创企业 物联网多了把“新板凳” 联想推三款智能硬件 .NET技术+25台服务器怎样支撑世界第54大网站 基调网络发布听云平台:“听”懂App性能 《近匠》豌豆荚李大海:用搜索敲开手机娱乐平台之门 微信开发HTML5轻游戏中的几个坑 【微信大会】企业号、支付功能、智能客服与LBS、电商开发解析 【CTO俱乐部走进海尔】活动图文直播进行中 燃料电池商业化,数据中心或将永不断电? 广告教父的哲学:值得F2P游戏借鉴的8条经验 UC李云:基于Chromium的浏览器如何打造更好体验 一周消息树:颠覆互联网思维?年薪50万码农转行卖凉皮 Coconut2D:跨平台2D游戏及应用开发工具 第八届中国大数据技术大会将于12月中旬隆重召开 10个常见的缓存使用误区 用户暴增下的收入降低,AWS面临尴尬 云数据中心选址PK:微软第一,IBM第二,谷歌最少 不应错过2014微信开发者大会的八个理由 为什么软件测试需要变革? 苹果和IBM成最佳搭档 微软谷歌或受威胁 OpenStack社区又添新成员 浪潮推动开放云生态系统构建 重度使用AWS及Hadoop,Pinterest的自服务平台打造历程 《近匠》腾讯信鸽:基于大数据的推送 超低功耗'Whisper'架构发布:IoT、可穿戴连接性IP新标准! R的数据分析制霸以及企业级应用盘点 第二届游戏运营技术论坛来袭!与大牛共论云时代的游戏运营之道 云雀科技:飞行器+地图,展望飞行器的新体验 Sandstorm,前Googler和极客名人建立通用开源工具保姆 触控科技CEO陈昊芝:引擎技术推动行业升级 谁能成为Hero,这一次你说了算!——TCL智能电视开发大赛创意阶段评审征集 各位高手,有人喜欢用mysql吗?谈谈这个东东吧 大富翁怎么连不上了? 各位武汉的大虾,请教武汉程序员、高级程序员、系统管理员(正规的大公司)、以及用JAVA做开发的工资一般为多少。希望大家给予帮助!!前途问题!! 网络编程大虾有请!如何获得当前每秒的字节数? 怎样在treeview中设置背景图片 to 版主:精华区太乱了,请给予分类。谢了 听说VB可以写PAD的程序,TRUE? JLabel中文本换行问题 马上要开始学BCB,请问BCB有那种类似于VC的创建类的向导吗,看到BCB的界面我就想到DELPHI中创建类的难度 我的游戏引擎BATTLEFIELD作好了,欢迎下载(这次是真的) 一个pop_up menu的问题 那位高手知道在SDK中使用ADO的方法 为普天之下正直而上进的程序员找一个温馨的家 为什么不能把JMF包打进去??? 内存泄露是指例如“为对象分配一个内存区后,未删除内存区,但删除了对象”是吗? 装pws时遇到的麻烦! to freezwy(网络自由人) 有没有限制上传图片大小的asp代码??(不是组件) 还是没有解决!!! 有关VC中数据库绑定的问题! 扔个骨头……下个“圈套”,呵呵? ^_^ 紧急情况!如何改变DataGrid控件中个别行的颜色?? 如果实现断开共享目录的连接 acces 表 SQL语句中如何转换字符型字段为整型? First-chance exception 请教directx的一个入门问题? 诚征MM中…… 多线程问题?? 请问sybase中real类型的最大值是多少?999999999 自杀的N个理由 如何根据日期计算出一年中的第几天? 情况不对,撤丫~~~~~~~~~ 如何在JBuilder4.0编译环境下打包\编译??????? 关于对话框的一个简单问题 如何把几个chm(已编译的 html 文件)文件合成一个chm文件 ado参数问题 请问sevrlet怎么结合HTML模板工作呢?谢谢 我想作一些动态界面,有谁能提供一些有关这方面的资料.小弟有礼了 比较弱的问题 各位大哥:请问哪儿有通过ADO操纵数据库的完整程序下载呀。最好是比较精典一点。谢 写一个php中的include文件,后缀名应该是什么。马上给分 怎么将PHOTOSHOP中分割的图片的结构植入DW4中? send 和 post的区别是什么?谢谢 哪里有《UNIX环境高级编程》这本书下载? 有没有asp的实例应用站点? 问题,请大家帮忙! 怎样删除自己曾经参与但现在不想参与的问题? 怎么样增加可用分呀?我分太少了 怎么使在网页上出现一个长方形框框,新闻在里面从左到右滚动显示 如何实现MPEG-1数据的实时回放? 到哪里下载《Windows程序设计 第5版》书 何处可以找到生成校验位的算法?即对一个长度为24位的字段,根据前22位生成最后两位校验位? 若(m+n)人完成一项工作需要m天,则n人完成这项工作需要()天请勿抄袭百度上滴,我都看过了,但还是不懂 甲乙丙三人合作承包了一项工程,6天能全部完成.已知甲单独做所需的天数与乙丙两人合作所需的天数相同,甲与乙合作所需的4倍与丙单独完成这项工程所需的天数相同,求乙丙单独完成这项工 一件工程,甲做要10天 乙做要12天 丙做要15天 甲乙合作3天后,甲因事离开,丙参加工作,问还要多少天完成? 若有M人,a天可完成某项任务,则(M+P)人完成这项任务的天数是多少 师徒三人合作承包一项工程,4天能够全部完成.已知师傅单独做所需天数与两个徒弟合作所需天数相等;而师傅 1)一项工程价单独做需10天,乙需12天,丙单独做需15天,甲丙先做3天后,甲因事离去乙参加工作,问还需几 某工程,甲单独做4天乙单独做6天,若甲先干一天,然后甲乙合作完成,设甲共做x天乙工作的天数是?列出方程共得到450元报酬按工作量计算该怎样分配 师徒三人合作承包一项工程,4天才能全部完成.一直师傅单独做所需的天数与两个徒弟合作所需的天数相等,而师傅与乙徒弟合作的时间的2倍与甲徒弟单独做所需的天数相等,那么甲徒弟单独完 一项工作甲单独做要10天,乙要15天,甲先做了2天后,乙接着做,还需几天完成说明白什么符号是什么意思,不要不明不白弄一大堆算式...除号用#表示就行 甲单独做4天,乙6天完成,甲先做一天,甲乙再合作做,设甲一共作x天,乙工作天数?列出的方程? 甲乙两人承包一项工程,共得报酬610元已知甲做10天,乙做13天,但因甲的技术比乙的技术好,因而预先就约定是甲做4天的工资比乙做5天的工资还要多40元,求甲、乙两人各分得多少元?用一元一次 甲单做20天完工,乙单做10天完工,要两人12天内完成任务,问乙先工作多少天后甲再继续加工可按期完成工作用一元一次方程解 某项工作甲单独做4天完成,乙单独做6天完成,若甲先干一天,甲乙合作完成.若设甲有共做了X天,乙的天数为多少?方程式为? 甲乙两人承包一项工程,共得报酬610元,已知甲做10天,乙做13天,但因甲的技术比乙好.问题:因而预先就约定甲做4天的工资比乙做5天的工资还要多40元,甲乙两人各分得多少元? 一件工作,甲独作要十天,乙独作要十二天,现在乙先做一天后,两人合作,完成任务时甲做了多少天? 一项工程,甲乙两队合作6天可以完成,甲队单独做15天可以完成,现在由两队合作2天后,甲队单独做,还需几天才能完成? 某项工程甲单独做要4天乙单独需6天,若甲先做1天,然后二人同做,若甲共做X天,则方程为?要方程 甲乙两人承包一项工程,共得报酬610元,已知甲做8天,乙做10天,但因甲的技术比乙好,因而预先约定甲做4天比乙出做5天的工资多40元,完成一个工程,甲乙各分多少元? 一项工程,甲、乙合做15天完成.现在由甲队先做4天后,乙队接着做6天,共完成这项工程的二十分之七,如果由甲、乙独做,完成这项工程各需几天?详细算式,不要只是一个答案~谢啦,还给追分,今天 完成一件工作,需要甲干5天,乙干6天,或者甲干7天乙干2天.甲乙单独干这件工作各需多少天?设甲是x那...完成一件工作,需要甲干5天,乙干6天,或者甲干7天乙干2天.甲乙单独干这件工作各需多少天? 甲乙两人承包一项工程,共得报酬610元,已知贾做了10天,乙做了13天,但因甲的技术比乙好,因而预先就约定甲做4甲乙两人承包一项工程,共得报酬610元,已知贾做了10天,乙做了13天,但因甲的 一项工程甲乙两队合作6天可以完成甲队单独做15天可以完成现在由两队合作3天后调走乙队,甲队还要几天完成? 一项工程,甲乙合作需要a天完成,甲单独作需要b天完成,则乙单独作需要的天数是多少 甲乙两人承包一项工程,共得报酬610元,已知甲做10天乙做13天,但因甲的技术比乙的技术好因而预先就约定甲做4天的工资比乙做5天的工资还多40元,甲,乙各得多少元(方程解)(思路)(一元一次方程) 甲乙二人共同做一件工作,规定若干天完成,若甲单独完成这件工作比规定天数多12天...甲乙二人共同做一件工作,规定若干天完成,若甲单独完成这件工作比规定天数多12天;若乙单独完成则比 有一项工程,甲单独做要a天完成,乙单独做b天完成,问甲乙合做完成这项工程需要几天才能完成? 一项工程,甲单独做要8天完成,乙独做需要10天完成,二人合作了4天,还剩这项工程的几分之几? 已知甲,乙两个共同完成一件工作需12天完成.若甲,乙两人单独完成这件工作,则乙所需的天数是甲所需天数的1.5倍.设由甲单独完成这件工作需X天.则方程____________________________________. 一项工程,甲单独做a天完成,乙独做b天完成,则甲、乙两人合做,这项工程多少天可以完成? 一项工程,甲乙合作8天完成,如果甲独做10天可以完成.两队合作4天,可以完成这项工程的几分之几?有计算过程和方法的优先 甲乙二人共同做一件工作,规定若干天完成,若甲单独完成这工作,则比规定天数多做12天;若乙单独完成这工作,则比规定天数多做27天,求甲乙单独完成这件工作各需多少天? 甲、乙2人合干A.B2项任务.甲独做A需9天.B需12天.乙独作A需3天.B需15天,至少几天能完成任务? 一项工程,甲队单独做8天完成,乙队独做要10天完成.两队合作的一天,共完成这项工程的几分之几? 已知甲乙两人共完成一件工作需12天完成.若甲乙两人单独完成这件工作,则乙所需的天数是甲所需天数的1.5倍设由甲单独完成这件工作需X天,则可列方程_________________ 甲,乙两人合干a,b工程甲独做a工程需九天b工程需十二天;乙独做a工程需三天b工程需十五天至少几天完成任务 一项工程,甲独做10天完成,乙独做15天完成.(1)甲、乙两队合做4天,完成这项工程的几分之几 某项工程,由甲单独做要a天完成,乙单独做要b天完成,现在甲先单独做2天,剩下额工作由乙单独做,则要完成此工程,还需要几天? 一项工程,甲乙合作20天可以完成,如果甲先做9天,乙再和甲一起做15天也可以完成,求甲乙单独做要多少天?用初二所学的知识解答(分式?反比例?)这个方程怎样解? 一项工程,甲队单独做10天完成,乙队单独做15天完成,两队合做5天,完成这项工程的几分之几? 某项工作,甲做要A天,乙做要B天,现甲单独做2天后,剩下工作由乙单独做,则乙完成剩下的工作所需多少天 有甲乙两个工程,甲人独做甲工程要9天,乙工程12天.乙人独做甲工程要3天,乙工程15天,如两人合作要多少天? 一项工程甲队独做10天完成;乙队独做15天完成,两队合作1天完成这项工程的几分之几? 某项工作,甲单独做要a天完成,乙单独做要b天完成.现在甲单独做2天后,剩下的乙做,乙要做多少天才能完成 一项工程,甲干4天,乙再干9天完成这项工作的1/2,已知甲、乙功效比是3:2,两人合做几天完成?是合做几天.. 一项工程,甲要15天完成,乙要20天完成,;两队合作6天后,完成这项工程的(),还剩()没有完成这是另一道题:甲除以乙的商是1.2,甲与乙的比是() 一项工程,甲单独做a天完成,乙独做要b天完成,现在甲先做3天,剩下的工作由乙独做还需要()天才能完成列代数式代数式要化简 某项工作,甲单独做要a天完成,乙单独做需b天完成,现在甲单独做2天后,剩下工作由乙单独做,则乙完成所剩下的工作所需天数是多少 一件工程,甲独做10天完成,乙独做12天完成,两人合作4天后,还剩下这件工程的几分之几? 某项工作,甲单独做要a天完成,乙单独 做需b天完成,现在甲单独做2天后,剩下工作由乙单独做,则乙单独 数学题一项工程,甲单独做6天的工作量,乙单独做要用7.5天才能做完 现在先由甲单独做2天后,乙加入合做5天一项工程,甲单独做6天的工作量,乙单独做要用7.5天才能做完现在先由甲单独做2天后, 一件工作甲单独做12天可以完成乙单独做十天完成,如果两人一起做这件工作两天后还剩下几分之几? m人a天可完成一项工作,如果增加n人,那么几天可完成这项工作?急用 某项工作,甲单独做需a天,在甲做了c天后,剩下的工作由乙单独完成某项工作,甲单独做需a天,在甲做了c天(c 一项工程甲单独做需要10天 乙需要12天 丙单独做需要15天,甲、丙先做3天后,甲因事离去,乙参与工作问还需几天完成? m人完成一项工程要a天,且每人工作效率相同,那么(m+n)人要多少天完成?请说明为什么AM是总工作量, (1)一项工程,甲队独做a天完成,乙队独做b天完成.两队合作,完成的天数是( ). 有一项工程甲单独做要10天,乙单独做12天,丙独自做15天,甲丙先做3天后,甲离开乙加入工作还要几天完成 3.若m人在a天可完成一项工作,那么m+n人完成这项工作需_______天(用代数式表示). 一项工程,甲单独做a天完成,乙队独做b天可以完成.两队合作,完成的天数.用字母表示 一件工程,甲单独做需10天,乙单独做需12天,丙独做需15天,甲、乙合作3天后,甲因事离开,丙参加工作,问还需多少人完成?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn