std::experimental::filesystem::last_write_time
來自 cppreference.com
< cpp | experimental | fs
定義於標頭檔案 <experimental/filesystem> |
||
file_time_type last_write_time( const path& p ); file_time_type last_write_time( const path& p, error_code& ec ) |
(1) | (filesystem TS) |
void last_write_time( const path& p, file_time_type new_time ); void last_write_time( const path& p, file_time_type new_time, error_code& ec ); |
(2) | (filesystem TS) |
目錄 |
[編輯] 引數
p | - | 要檢查或修改的路徑 |
new_time | - | 新的修改時間 |
ec | - | 非丟擲過載中用於錯誤報告的出參 |
[編輯] 返回值
1) p 的最後修改時間。
2) (無)
[編輯] 異常
不帶 error_code& 引數的過載在底層 OS API 錯誤時丟擲 filesystem_error,構造時以 p 作為第一個引數,OS 錯誤碼作為錯誤碼引數。如果記憶體分配失敗,可能會丟擲 std::bad_alloc。帶 error_code& 引數的過載在 OS API 呼叫失敗時將其設定為 OS API 錯誤碼,如果沒有錯誤發生則執行 ec.clear()。此過載具有noexcept 規範:
noexcept
[編輯] 注意
不保證在設定寫入時間後,(1) 返回的值與傳遞給 (2) 的引數相同,因為檔案系統的時間可能比 file_time_type
更精細。
[編輯] 示例
執行此程式碼
#include <chrono> #include <experimental/filesystem> #include <fstream> #include <iomanip> #include <iostream> namespace fs = std::experimental::filesystem; using namespace std::chrono_literals; int main() { fs::path p = fs::current_path() / "example.bin"; std::ofstream(p.c_str()).put('a'); // create file auto ftime = fs::last_write_time(p); std::time_t cftime = decltype(ftime)::clock::to_time_t(ftime); // assuming system_clock std::cout << "File write time is " << std::asctime(std::localtime(&cftime)) << '\n'; fs::last_write_time(p, ftime + 1h); // move file write time 1 hour to the future ftime = fs::last_write_time(p); // read back from the filesystem cftime = decltype(ftime)::clock::to_time_t(ftime); std::cout << "File write time is " << std::asctime(std::localtime(&cftime)) << '\n'; fs::remove(p); }
可能的輸出
File write time is Tue Mar 31 19:47:04 2015 File write time is Tue Mar 31 20:47:04 2015
[編輯] 另見
表示檔案時間值 (typedef) |