在 Inno Setup Pascal 脚本中获取文件的最后修改日期
我需要在安装脚本中选择最近修改的文件。看来Pascal脚本语言没有GetFileDateTime
或类似的,所以我求助于:
function FileDateTime (FileID : string) : double ;
var
FindRec : TFindRec;
begin
Result := 0.00 ;
if (FindFirst (FileID, FindRec)) then
begin
try
Result := FindRec.LastWriteTime ; { gives type mismatch, naturally }
finally
FindClose (FindRec) ;
end ;
end ;
end ;
但我找不到任何关于LastWriteTime
格式的文档。理想情况下,我希望以一种相对容易显示的格式返回日期时间,因为我还需要编写 Delphi 的 FormatDateTime
的等效项。 Inno Pascal 有 GetDateTimeString
但这仅格式化当前日期时间,而不是任意日期时间。
I need to choose the most recently modified file in my installation script. It seems the Pascal scripting language has no GetFileDateTime
or similar, so I am resorting to:
function FileDateTime (FileID : string) : double ;
var
FindRec : TFindRec;
begin
Result := 0.00 ;
if (FindFirst (FileID, FindRec)) then
begin
try
Result := FindRec.LastWriteTime ; { gives type mismatch, naturally }
finally
FindClose (FindRec) ;
end ;
end ;
end ;
but I can't find any documentation on the format of LastWriteTime
. Ideally I want the datetime returned in a format that will make it relatively easy to display it, as I will need to write the equivalent of Delphi's FormatDateTime
as well. Inno Pascal has GetDateTimeString
but this only formats the current datetime, not an arbitrary datetime.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
有关 InnoSetup 中
TFindRec
记录的文档位于此处。它非常稀疏,但我几乎确信它具有与 Windows API 中相应结构完全相同的格式。事实上,InnoSetup 的 FindFirst 函数很可能对应于
FindFirstFile
。因此,TFindRec
记录对应于WIN32_FIND_DATA
结构,以便TFileTime
记录对应于FILETIME
结构。The documentation on the
TFindRec
record in InnoSetup is here. It is very sparse, but I am almost confident that it has the exact same format as the corresponding structure in the Windows API.Indeed, InnoSetup's
FindFirst
function most likely corresponds toFindFirstFile
of the Windows API. Thus, theTFindRec
record corresponds to theWIN32_FIND_DATA
structure so that aTFileTime
record corresponds to aFILETIME
structure.