Delphi Tips 
-----------------------------

0143  D1   D2   D3   D4   D5   D6   D7   3.1   95   98    作成: 1999/02/11 osamu rev 1.2
   B1   B3   B4   B5   B6   B7   NT3   NT4   2K   XP  更新: 1999/09/08 osamu 編集
フォルダのタイムスタンプを変更する

ファイルのタイムスタンプを変更するのはできるのですがフォルダのタイムスタンプはどのようにして変更したらよいのでしょうか?

procedure ChangeDirTime(DirName : String;Date : TDateTime);
var
  FHandle   : integer;

Begin
 FHandle := CreateFile(Pchar(DirName),  { ディレクトリ名最後に\はいらない }
   GENERIC_WRITE,    { 書きこみ許可しないと変えられない }
   FILE_SHARE_Read,   { 最低他からアクセスできないとハンドルがもらえない }
   nil,     { セキュリティは無視(いいのかな?) }
   OPEN_EXISTING,    { ディレクトリは存在していることを前提 }
   FILE_FLAG_BACKUP_SEMANTICS,   { APIのヘルプをみてね }
   0);
 FileSetDate(FHandle,DateTimeToFileDate(Date));
 CloseHandle(FHandle);
End;

タイムスタンプの設定にAPIのSetFileTimeを使う手もありますがフォルダならこれで十分です。

D3+Win98 では動きませんでした。NT では動くのかな???
参照: [Delphi-ML:24889] <Windows> <ファイル>

[新規作成] [最新の情報に更新]

How To
Lounge
KeyWords


Tips
Delphi
Home
Osamu Takeuchi osamu@big.or.jp