0

ファイルの最終アクセス時刻を確認する必要があります。「GetFileTime」を使用して最終アクセス時刻を読み取りました。これhandleには最初の引数としてファイルが必要であることに注意してください。つまり、ハンドルを に渡す前に、ハンドルGetFileTimeを作成する必要があります。だから私は使用してハンドルを作成しましたCreateFile(MyFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);

Accessed:したがって、これにより、ファイルのプロパティから見たのと同じ最終アクセス時刻が得られませんGeneral Tab。これは期待されていますか?または私は何か間違ったことをしましたか?

Accessed:代わりに、ファイルを最後に右クリックしてそのプロパティを確認した最近の時間を取得しますが、これはプロパティのフィールドには影響しませんGeneral Tab

注: で最終アクセス時刻の更新を有効にしましたwindows server。このコードは、Apache の authz モジュール (mod_authz.so) の一部です。私を啓発します。

4

2 に答える 2

1

ここで迅速な回答が得られなかったので、この質問をserverfaultに投稿しました-回答はかなり説明されています。

これはドキュメントからの声明です。

すべてのファイル システムが作成時刻と最終アクセス時刻を記録できるわけではなく、すべてのファイル システムが同じ方法でそれらを記録するわけではありません。たとえば、FAT の作成時間の分解能は 10 ミリ秒ですが、書き込み時間の分解能は 2 秒、アクセス時間の分解能は 1 日なので、実際にはアクセス日付です。NTFS ファイル システムは、ファイルの最終アクセス時刻への更新を、最終アクセスから最大 1 時間遅らせます。

このことから、更新の一貫性を求めない限り、ファイルの最終アクセス時刻に依存するべきではないと思います。

私の経験:

ただし、APIGetFileTimeまたはを使用GetFileAttributesExすると、期待どおりの出力が得られます。Propertiesこれは、 の下のAccessed:フィールドのファイルから視覚化できないというだけです General tab

なぜこのような質問をしたのか、そのような行動の理由がわかりません。

于 2016-12-23T04:10:11.243 に答える