Delphi 6:如何更改创建的提交者(=文件创建日期)
发布时间:2020-12-15 04:00:56 所属栏目:大数据 来源:网络整理
导读:我一直在谷歌搜索HOURS(和这里). 我找不到解决方案. 我想在DELPHI 6中更改“Created Filetime”(=创建文件时间). 不是“修改文件时间”(需要简单调用“FileSetDate()”) 而不是“上次访问的文件时间”. 我该怎么做呢? 解决方法 调用 SetFileTime Windows AP
我一直在谷歌搜索HOURS(和这里).
我找不到解决方案. 我想在DELPHI 6中更改“Created Filetime”(=创建文件时间). 不是“修改文件时间”(需要简单调用“FileSetDate()”) 我该怎么做呢? 解决方法
调用
SetFileTime Windows API函数.如果您只想修改创建时间,则为lpLastAccessTime和lpLastWriteTime传递nil.
您需要通过调用 通过将API调用包装在一个接收文件名和TDateTime的辅助函数中,让自己的生活更轻松.此函数应管理获取和关闭文件句柄的低级细节,并将TDateTime转换为FILETIME. 我会这样做: const FILE_WRITE_ATTRIBUTES = $0100; procedure SetFileCreationTime(const FileName: string; const DateTime: TDateTime); var Handle: THandle; SystemTime: TSystemTime; FileTime: TFileTime; begin Handle := CreateFile(PChar(FileName),FILE_WRITE_ATTRIBUTES,FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if Handle=INVALID_HANDLE_VALUE then RaiseLastOSError; try DateTimeToSystemTime(DateTime,SystemTime); if not SystemTimeToFileTime(SystemTime,FileTime) then RaiseLastOSError; if not SetFileTime(Handle,@FileTime,nil) then RaiseLastOSError; finally CloseHandle(Handle); end; end; 我不得不添加FILE_WRITE_ATTRIBUTES的声明,因为它在Delphi 6 Windows单元中不存在. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |