【发布时间】:2019-08-22 12:10:51
【问题描述】:
我使用的是 Delphi 10 和 Windows 10 Home Edition 64 位。我有一个名为 MVI_0640.AVI 的视频文件。文件资源管理器中显示的日期是 15/04/04,对应于“属性”窗口中的媒体创建日期。
我正在使用以下代码来提取日期。
procedure TForm1.Button1Click(Sender: TObject);
var
ADate: TDateTime;
FlHandle: integer;
MyData: TWin32FindData;
FlTime: TFileTime;
MySysTime: TSystemTime;
begin
{get date using GetCreationTime}
ADate := TFile.GetCreationTime(FlName);
Memo1.Lines.Add('GetCreationTime ' + DateToStr(ADate));
{get date using FileGetDate}
FlHandle := FileOpen(FlName,fmOpenRead);
ADate := FileDateToDateTime(FileGetDate(FlHandle));
FileClose(FlHandle);
Memo1.Lines.Add('FileGetDate ' + DateToStr(ADate));
{get date using FindFirstFile}
FindFirstFile(PChar(FlName), MyData);
FlTime := MyData.ftCreationTime;
FileTimeToSystemTime(FlTime, MySysTime);
ADate := SystemTimeToDateTime(MySysTime);
Memo1.Lines.Add('ftCreationTime ' + DateToStr(ADate));
FlTime := MyData.ftLastAccessTime;
FileTimeToSystemTime(FlTime, MySysTime);
ADate := SystemTimeToDateTime(MySysTime);
Memo1.Lines.Add('ftLastAccessTime ' + DateToStr(ADate));
FlTime := MyData.ftLastWriteTime;
FileTimeToSystemTime(FlTime, MySysTime);
ADate := SystemTimeToDateTime(MySysTime);
Memo1.Lines.Add('ftLastWriteTime ' + DateToStr(ADate));
end;
结果如下:
没有任何日期反映媒体创建日期。如何提取它?
【问题讨论】:
-
嗨 Rudi,创建日期作为元数据存在于 AVI 文件中。我不确定你是否可以使用 shell api 来访问信息。
-
一个 avi 文件是一个 RIFF 文件。搜索格式的规范。例如。 :sno.phy.queensu.ca/~phil/exiftool/TagNames/RIFF.html
标签: file date delphi extract avi