Delphiでファイルの作成時刻・最終アクセス時刻・最終書き込み時刻を設定する

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;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です