GetFileTime 関数 (fileapi.h)
ファイルまたはディレクトリが作成された日時、最後にアクセスされた日時、最後に変更された日時を取得します。
構文
BOOL GetFileTime(
[in] HANDLE hFile,
[out, optional] LPFILETIME lpCreationTime,
[out, optional] LPFILETIME lpLastAccessTime,
[out, optional] LPFILETIME lpLastWriteTime
);
パラメーター
[in] hFile
日付と時刻を取得するファイルまたはディレクトリへのハンドル。 ハンドルは、GENERIC_READアクセス権を持つ CreateFile 関数を使用して作成されている必要があります。 詳細については、「 ファイル のセキュリティとアクセス権」を参照してください。
[out, optional] lpCreationTime
ファイルまたはディレクトリが作成された日時を受け取る FILETIME 構造体へのポインター。 アプリケーションでこの情報が必要ない場合、このパラメーターは NULL にすることができます 。
[out, optional] lpLastAccessTime
ファイルまたはディレクトリが最後にアクセスされた日時を受け取る FILETIME 構造体へのポインター。 最後のアクセス時刻には、ファイルまたはディレクトリの最後の書き込み、読み取り、または実行可能ファイルの場合は 実行が含まれます。 アプリケーションでこの情報が必要ない場合、このパラメーターは NULL にすることができます 。
[out, optional] lpLastWriteTime
ファイルまたはディレクトリの最後の書き込み、切り捨て、または上書きされた日時 (WriteFile や SetEndOfFile など) を受け取る FILETIME 構造体へのポインター。 ファイル属性またはセキュリティ記述子が変更された場合、この日付と時刻は更新されません。 アプリケーションでこの情報が必要ない場合、このパラメーターは NULL にすることができます 。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
すべてのファイル・システムが作成時刻と最終アクセス時間を記録できるわけではありません。また、すべてのファイル・システムが同じ方法で記録するわけではありません。 たとえば、FAT では、作成時間の解像度は 10 ミリ秒、書き込み時間の解像度は 2 秒、アクセス時間の解像度は 1 日 (実際にはアクセス日) です。 したがって、 GetFileTime 関数は 、SetFileTime 関数を使用して設定された同じファイル時刻情報を返さない場合があります。
NTFS は、ファイルの最終アクセス時刻の更新を最後のアクセスから最大 1 時間後に遅延します。 NTFS では、最後のアクセス時間の更新を無効にすることもできます。 既定では、NTFS ボリュームでは最終アクセス時間は更新されません。
Windows Server 2003 および Windows XP: 既定では、NTFS ボリュームで最終アクセス時間が更新されます。
詳細については、「ファイル時間」を参照してください。
ファイルの名前を変更または削除した後すぐに復元すると、Windows はキャッシュで復元するファイル情報を検索します。 キャッシュされた情報には、短い名前と長い名前のペアと作成時間が含まれます。
例
例については、「 Last-Write 時刻の取得」を参照してください。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | fileapi.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |