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

檔案或目錄的控制碼。 必須使用 CreateFile 函式搭配 FILE_WRITE_ATTRIBUTES 存取權限來建立控制碼。 如需詳細資訊,請參閱 檔案安全性和存取權限

[in, optional] lpCreationTime

FILETIME結構的指標,其中包含檔案或目錄的新建立日期和時間。 如果應用程式不需要變更這項資訊,請將此參數設定為 NULL 或指向同時設定 dwLowDateTimedwHighDateTime成員 0FILETIME結構的指標。

[in, optional] lpLastAccessTime

FILETIME結構的指標,其中包含檔案或目錄的新上次存取日期和時間。 上次存取時間包括執行) 可執行檔時,上次寫入、讀取或 (檔案或目錄的時間。 如果應用程式不需要變更這項資訊,請將此參數設定為 NULL 或指向同時設定 dwLowDateTimedwHighDateTime成員 0FILETIME結構的指標。

若要防止使用指定控制碼的檔案作業修改上次存取時間,請在開啟檔案控制代碼之後立即呼叫SetFileTime,並傳遞同時設定dwLowDateTimedwHighDateTime成員 0xFFFFFFFFFILETIME結構。

[in, optional] lpLastWriteTime

FILETIME結構的指標,其中包含檔案或目錄的新上次修改日期和時間。 如果應用程式不需要變更這項資訊,請將此參數設定為 NULL 或指向同時設定 dwLowDateTimedwHighDateTime成員 0FILETIME結構的指標。

若要防止使用指定控制碼的檔案作業修改上次寫入時間,請在開啟檔案控制代碼之後立即呼叫SetFileTime,並傳遞同時設定 0xFFFFFFFFdwLowDateTimedwHighDateTime成員的FILETIME結構。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

並非所有檔案系統都可以記錄建立和上次存取時間,而且並非所有檔案系統都以相同的方式記錄它們。 例如,在 FAT 上,建立時間的解析度為 10 毫秒、寫入時間解析度為 2 秒,而存取時間確實解析為 1 天 (,存取日期) 。 因此, GetFileTime 函式可能不會使用 SetFileTime傳回相同的檔案時間資訊集。 NTFS 會延遲上次存取檔案上次存取時間的更新,在上次存取之後最多一小時。

範例

如需範例,請參閱 將檔案時間變更為目前時間

需求

   
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 fileapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

FILETIME

檔案時間

GetFileSize

GetFileTime

GetFileType

SetFileInformationByHandle

時間函數