最終更新日時(UTC):
が更新

履歴 編集

type-alias
<filesystem>

std::filesystem::file_time_type(C++17)

namespace std::filesystem {
  using file_time_type = chrono::time_point<実装定義のクロック型>;
}

概要

ファイル情報で使用する時間の型。

時間の分解能はOS依存。

#include <iostream>
#include <fstream>
#include <filesystem>
#include <ctime>
#include <iomanip>

namespace fs = std::filesystem;

void print_datetime(const char* name, fs::file_time_type tp)
{
  namespace chrono = std::chrono;
  auto sec = chrono::duration_cast<chrono::seconds>(tp.time_since_epoch());

  std::time_t t = sec.count();
  const tm* lt = std::localtime(&t);
  std::cout << name << " : " << std::put_time(lt, "%c") << std::endl;
}

int main()
{
  std::ofstream{"regular.txt"};
  fs::create_directory("dir");

  // ファイル・ディレクトリの最終更新日時を取得
  fs::file_time_type file_time = fs::last_write_time("regular.txt");
  fs::file_time_type dir_time = fs::last_write_time("dir");

  print_datetime("file time", file_time);
  print_datetime("dir time", dir_time);

  // ファイルの最終更新日時として、現在日時を設定
  fs::last_write_time("regular.txt", fs::file_time_type::clock::now());
}

出力例

file time : Fri Jun 15 14:19:03 2018
dir time : Fri Jun 15 14:19:03 2018

バージョン

言語

  • C++17

処理系

関連項目