- 締切済み
ファイルのアクセス日時取得を変更させずに取得する方法
お世話になります。 プログラム上で、windows上にあるファイルのアクセス日時を取得したいのですが、WinAPIのFindFirstFile()、または、GetFileTime()を使って取得すると、「そのファイルのアクセス日時」ではなく、「WinAPIがそのファイルにアクセスした日時」が取得されてしまいます。 ファイルのアクセス日時をそのまま取得する方法についてご存知の方は是非ご教授ください。 対象となるのは、windows2000とwindowsXPで、言語はCまたはC++です。 なお、ファイル圧縮/解凍ソフトをいくつか実行してみたところ、アクセス日時が圧縮前のままのもの、圧縮したときのもの、解凍したときのものとありましたので、方法はあると思っています。 #リポジトリを触ればアクセス日時を凍結できるので、一時的にそうしておくとか? 以上、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hope10
- ベストアンサー率48% (17/35)
回答No.1
はて?他方は判りませんが、FindFirstFile ではアクセス日時は変わらないと思いましたが、変わりますか? ちなみに explorer でリスト表示させると変更してしまうようなのでお尋ねしますが、FindFirstFile でアクセス日時が変わったと言う事をどういう操作で確認されましたか?
お礼
回答が遅くなって申し訳在りません。 1/21は、午後になってから「教えて!goo」に一度もアクセスできなかったもので・・・ まず、結果からですが、hope10さんのご指摘どおり、FindFirstFileはアクセス日時が変わりませんでした。 アクセス日時の確認方法ですが、FindFirstFile、GetFileTime実行直後に、アクセス日時を出力させていました。 ここで、出力文に誤りがあり、FindFirstFile、GetFileTimeの両方ともでGetFileTimeで取得したアクセス日時を出力していたために、アクセス日時が変わっていると判断していました。 確認不足で申し訳ありません。 [結果] ファイル作成時のアクセス日時(プロパティで参照) = 2005/01/28 13:18:24 FindFirstFile ftLastAccessTime = 2005/01/28 13:18:24.183 GetFileTime accessTime = 2005/01/28 13:31:14.450 ちなみにGetFileTimeでは日時が変わっています(+約3分)が、何の日時かは不明です。 とりあえずFindFirstFileが使えますので、よしとします。 ありがとうございました。