SetFileTime 関数 (fileapi.h)
指定したファイルまたはディレクトリが作成された日時、最後にアクセスされた日時、最後に変更された日時を設定します。
構文
BOOL SetFileTime(
[in] HANDLE hFile,
[in, optional] const FILETIME *lpCreationTime,
[in, optional] const FILETIME *lpLastAccessTime,
[in, optional] const FILETIME *lpLastWriteTime
);
パラメーター
[in] hFile
ファイルまたはディレクトリへのハンドル。 ハンドルは、FILE_WRITE_ATTRIBUTESアクセス権を持つ CreateFile 関数を使用して作成されている必要があります。 詳細については、「 ファイル のセキュリティとアクセス権」を参照してください。
[in, optional] lpCreationTime
ファイルまたはディレクトリの新しい作成日時を含む FILETIME 構造体へのポインター。 アプリケーションでこの情報を変更する必要がない場合は、このパラメーターを にNULL
設定するか、dwLowDateTime メンバーと dwHighDateTime メンバーの両方が に設定されている FILETIME 構造体へのポインターに設定します。0
[in, optional] lpLastAccessTime
ファイルまたはディレクトリの新しい最終アクセス日時を含む FILETIME 構造体へのポインター。 最後のアクセス時刻には、ファイルまたはディレクトリの最後の書き込み、読み取り元、または (実行可能ファイルの場合) の実行時刻が含まれます。 アプリケーションでこの情報を変更する必要がない場合は、このパラメーターを にNULL
設定するか、dwLowDateTime メンバーと dwHighDateTime メンバーの両方が に設定されている FILETIME 構造体へのポインターに設定します。0
指定したハンドルを使用したファイル操作で最後のアクセス時刻が変更されないようにするには、ファイル ハンドルを開いた直後に SetFileTime を呼び出し、dwLowDateTime メンバーと dwHighDateTime メンバーの両方が に設定されている FILETIME 構造体を0xFFFFFFFF
渡します。
[in, optional] lpLastWriteTime
ファイルまたはディレクトリの新しい最終変更日時を含む FILETIME 構造体へのポインター。 アプリケーションでこの情報を変更する必要がない場合は、このパラメーターを にNULL
設定するか、dwLowDateTime メンバーと dwHighDateTime メンバーの両方が に設定されている FILETIME 構造体へのポインターに設定します。0
指定されたハンドルを使用したファイル操作で最後の書き込み時刻が変更されないようにするには、ファイル ハンドルを開いた直後に SetFileTime を呼び出し、dwLowDateTime メンバーと dwHighDateTime メンバーの両方が に設定されている FILETIME 構造体を0xFFFFFFFF
渡します。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
すべてのファイル・システムが作成時刻と最終アクセス時間を記録できるわけではありません。また、すべてのファイル・システムが同じ方法で記録するわけではありません。 たとえば、FAT では、作成時間の解像度は 10 ミリ秒、書き込み時間の解像度は 2 秒、アクセス時間の解像度は 1 日 (実際にはアクセス日) です。 したがって、 GetFileTime 関数は 、SetFileTime を使用して設定された同じファイル時刻情報を返さない場合があります。 NTFS は、ファイルの最終アクセス時刻の更新を最後のアクセスから最大 1 時間後に遅延します。
例
例については、「 ファイル時刻を現在の時刻に変更する」を参照してください。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | fileapi.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |