フォルダのタイムスタンプを変更する
|
ファイルのタイムスタンプを変更するのはできるのですがフォルダのタイムスタンプはどのようにして変更したらよいのでしょうか?
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 では動くのかな??? |
|