System.IOUtilsユニットの関数を使うとファイルの作成時刻・最終アクセス時刻・最終書き込み時刻を簡単に設定できます。
System.IOUtilsユニットはDelphi 2010以降で使用できます。
使用するユニット
uses System.IOUtils;
ファイルの作成時刻を変更する
ファイルの作成時刻を変更するには、System.IOUtils.TFile.SetCreationTimeを使用します。
procedure TForm1.ButtonCreationTimeClick(Sender: TObject);
var
Path: string;
DateTime: TDateTime;
begin
// 作成時刻を変更しようとするファイルのパス
Path := 'C:\sample\file.txt';
// ファイルに適用しようとする新しい作成時刻
DateTime := System.DateUtils.Tomorrow;
// ファイルの作成時刻を変更する
TFile.SetCreationTime(Path, DateTime);
ShowMessage(FormatDateTime('yyyy/hh/dd hh:nn:ss', TFile.GetCreationTime(Path)));
end;
時刻をUTC(Coordinated Universal Time:協定世界時)で指定する場合は、System.IOUtils.TFile.SetCreationTimeUtcを使用します。
procedure TForm1.ButtonCreationTimeUtcClick(Sender: TObject);
var
Path: string;
DateTime: TDateTime;
begin
// 作成時刻を変更しようとするファイルのパス
Path := 'C:\sample\file.txt';
// ファイルに適用しようとする新しい作成時刻
DateTime := System.DateUtils.Tomorrow;
// ファイルの作成時刻を変更する
TFile.SetCreationTimeUtc(Path, DateTime);
ShowMessage(FormatDateTime('yyyy/hh/dd hh:nn:ss', TFile.GetCreationTimeUtc(Path)));
end;
ファイルの最終アクセス時刻を変更する
ファイルの最終アクセス時刻を変更するには、System.IOUtils.TFile.SetLastAccessTimeを使用します。
procedure TForm1.ButtonLastAccessTimeClick(Sender: TObject);
var
Path: string;
DateTime: TDateTime;
begin
// 最終アクセス時刻を変更しようとするファイルのパス
Path := 'C:\sample\file.txt';
// ファイルに適用しようとする新しい最終アクセス時刻
DateTime := System.DateUtils.Tomorrow;
// ファイルの最終アクセス時刻を変更する
TFile.SetLastAccessTime(Path, DateTime);
ShowMessage(FormatDateTime('yyyy/hh/dd hh:nn:ss', TFile.GetLastAccessTime(Path)));
end;
時刻をUTC(Coordinated Universal Time:協定世界時)で指定する場合は、System.IOUtils.TFile.SetLastAccessTimeUtcを使用します。
procedure TForm1.ButtonLastAccessTimeUtcClick(Sender: TObject);
var
Path: string;
DateTime: TDateTime;
begin
// 最終アクセス時刻を変更しようとするファイルのパス
Path := 'C:\sample\file.txt';
// ファイルに適用しようとする新しい最終アクセス時刻
DateTime := System.DateUtils.Tomorrow;
// ファイルの最終アクセス時刻を変更する
TFile.SetLastAccessTimeUtc(Path, DateTime);
ShowMessage(FormatDateTime('yyyy/hh/dd hh:nn:ss', TFile.GetLastAccessTimeUtc(Path)));
end;
ファイルの最終書き込み時刻を変更する
ファイルの最終書き込み時刻を変更するには、System.IOUtils.TFile.SetLastWriteTimeを使用します。
procedure TForm1.ButtonLastWriteTimeClick(Sender: TObject);
var
Path: string;
DateTime: TDateTime;
begin
// 最終書き込み時刻を変更したいファイルのパス
Path := 'C:\sample\file.txt';
// ファイルに適用しようとする新しい最終書き込み時刻
DateTime := System.DateUtils.Tomorrow;
// ファイルの最終書き込み時刻を変更する
TFile.SetLastWriteTime(Path, DateTime);
ShowMessage(FormatDateTime('yyyy/hh/dd hh:nn:ss', TFile.GetLastWriteTime(Path)));
end;
時刻をUTC(Coordinated Universal Time:協定世界時)で指定する場合は、System.IOUtils.TFile.SetLastWriteTimeUtcを使用します。
procedure TForm1.ButtonLastWriteTimeUtcClick(Sender: TObject);
var
Path: string;
DateTime: TDateTime;
begin
// 最終書き込み時刻を変更したいファイルのパス
Path := 'C:\sample\file.txt';
// ファイルに適用しようとする新しい最終書き込み時刻
DateTime := System.DateUtils.Tomorrow;
// ファイルの最終書き込み時刻を変更する
TFile.SetLastWriteTimeUtc(Path, DateTime);
ShowMessage(FormatDateTime('yyyy/hh/dd hh:nn:ss', TFile.GetLastWriteTimeUtc(Path)));
end;