名前空間
変種
操作

std::filesystem::file_time_type

提供: cppreference.com
 
 
 
ヘッダ <filesystem> で定義
using file_time_type = std::chrono::time_point</*trivial-clock*/>;
(C++17以上)
(C++20未満)
using file_time_type = std::chrono::time_point<std::chrono::file_clock>;
(C++20以上)

ファイルの時刻を表します。

trivial-clock は、 TrivialClock を満たし、ファイルシステムによって提供されるファイル時刻値の範囲および精度を表現するのに十分な、処理系定義の型です。

(C++20未満)

[編集]

#include <iostream>
#include <chrono>
#include <iomanip>
#include <fstream>
#include <filesystem>
namespace fs = std::filesystem;
using namespace std::chrono_literals;
int main()
{
    fs::path p = fs::current_path() / "example.bin";
    std::ofstream(p.c_str()).put('a'); // ファイルを作成します。
    auto ftime = fs::last_write_time(p);
 
    // このデモでは system_clock を想定しています。
    // 注: これは MSVC や GCC 9 では真ではありません。 C++20 では移植性のある出力が可能となります。
    std::time_t cftime = decltype(ftime)::clock::to_time_t(ftime);
    std::cout << "File write time is " << std::asctime(std::localtime(&cftime)) << '\n';
 
    fs::last_write_time(p, ftime + 1h); // ファイルの更新時刻を1時間未来に移動させます。
    ftime = fs::last_write_time(p); // ファイルシステムから読み直します。
 
    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

[編集] 関連項目

最終更新時刻を取得または設定します
(関数) [edit]