获取、设置文件的时间

function CovFileDate(Fd:_FileTime):TDateTime; { 转换文件的时间格式 }
var
  Tct:_SystemTime;
  Temp:_FileTime;
begin
  FileTimeToLocalFileTime(Fd,Temp);
  FileTimeToSystemTime(Temp,Tct);
  CovFileDate:=SystemTimeToDateTime(Tct);
end;
  
procedure 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;
  
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;

时间: 2024-10-12 15:13:25

获取、设置文件的时间的相关文章

获取/设置/重置系统时间

                                日期内容                                     格式                                                      星期 %a (例如: Sat) %A (例如Saturday)                             月 %b(例如:NOV) %B(例如November)                             日 %d(

OSS内文件如何设置为无时间限制的下载链接

OSS内文件如何设置为无时间限制的下载链接 想把一些文件上传到OSS里,把OSS当网盘用,做成分享的下载链接 发现获取的链接都是有时间限制的 有没有取消这个时间限制的功能或者方法 请将object的权限修改为"公共读",即可取消下载时间限制

kindeditor 4 指定生成文件的时间日期/动态获取My97的时间

最近后台要求要指定上传附件的时间日期,编辑器是kindeditor,仔细研究后发现可以借助clickToolbar事件,传递时间到后台,但是中途发现传递的时间总是初始化my97的时间,改变后的时间只有在提交时才能生效 于是又研究了下My97,终于解决 1 <tr class="info"> 2 <td class="text-right">自定义发布时间</td> 3 <td> 4 <fmt:formatDate

一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 @for&ever 2010-07-03 功能: 获取指定目录下面符合一定规则的文件名称和文件修改时间,并保存到指定的文件中 脚本如下: #!/usr/bin/env python# -*- coding: utf-8 -*- '''Created on 2010-7-2 @author: fore

(五)关于过期键(1)过期键的设置、获取和删除过期时间

设置过期 默认情况下键是没有生存时间的,也就是永不过期,除非清空内存. 设置的键的生存时间也很容易,可以通过4个命令设置(任选一即可):EXPIRE.PEXPIRE.EXPIREAT.PEXPIREAT命令,这4个命令看起来不同但是背后实现原理都是一样的.常用的其实就是EXPIRE和PEXPIRE这两个,前者是以秒设置过期时间,后者是以毫秒. 以秒来设置,设置aaa这个键1秒后过期,1秒中以后再获取aaa这个键则返回空. 以毫秒来设置,设置bbb这个键10毫秒后过期. 命令 说明 EXPIREk

C++ 设置文件最近修改时间

利用VS开发C++项目,经常发现修改系统时间后,每次编译过程会变得很慢,其原因就是当你把系统时间调到未来的一个时间点,然后有意或者无意编辑过一些代码文件,那么这些文件的时间戳就停留在未来. 当你把系统时间调到现在后,编译器每次编译的时候,总会判定这些文件是最新的,所以总是会把这些文件编译一遍,如果这些文件中有某些被其他文件引用,那么会有更多的文件被重新编译,而且这种过程每次 编译都会执行一遍,导致编译速度降低.为了解决这个问题,我特意写了一个小工具. 这个工具的原理跟简单,找出指定目录下时间戳大

Redis 过期键的设置、获取和删除过期时间

Redis 过期键的设置.获取和删除过期时间 转自http://blog.51cto.com/littledevil/1813956 设置过期 默认情况下键是没有生存时间的,也就是永不过期,除非清空内存. 设置的键的生存时间也很容易,可以通过4个命令设置(任选一即可):EXPIRE.PEXPIRE.EXPIREAT.PEXPIREAT命令,这4个命令看起来不同但是背后实现原理都是一样的.常用的其实就是EXPIRE和PEXPIRE这两个,前者是以秒设置过期时间,后者是以毫秒. 以秒来设置,设置aa

git如何获取单个文件的提交时间

git如何获取一个文件的提交时间并格式化输出 用python实现: 1.利用git命令行获取一个文件的提交时间 2.将结果格式化输出 原文地址:https://www.cnblogs.com/sikeblogs/p/12114651.html

第七篇:使用 fcntl 函数 获取,设置文件的状态标志

前言 当打开一个文件的时候,我们需要指定打开文件的模式( 只读,只写等 ).那么在程序中如何获取,修改这个文件的状态标志呢?本文将告诉你如何用 fcntl函数 获取指定文件的状态标志. 解决思路 1. 对于获取文件状态标志,我们可以通过调用fcntl函数得到一个记录文件标志的整型变量,然后分别让它和各个状态标志常量进行&操作.若操作结果为正则文件具有此状态标志,否则文件没有此状态标志.( 如果是检查只读,只写,可读可写,则需要和ACCMODE相&,然后判断其结果是否为O_RDONLY,O_