Boost.Filesytemでファイルの最終更新日時を取得

逆引きリファレンスの方には、Boost.DateTimeを使ってフォーマット出力する例を書いたので、こちらではオレオレDateTimeライブラリを使った例を書きます。


boost::filesystem::last_write_time()で、最終更新日時がとれ、std::time_tが返されます。

#include <iostream>
#include <boost/filesystem.hpp>
#include <shand/date_time.hpp>

namespace fs = boost::filesystem;

int main()
{
    try {
        const fs::path path("dir1/a.txt");
        const std::time_t last_update = fs::last_write_time(path);

        const shand::date_time time(last_update);
        std::cout << time.format("%Y/%m/%d %H:%M:%S") << std::endl;
    }
    catch (fs::filesystem_error& ex) {
        std::cout << "エラー発生! : " << ex.what() << std::endl;
    }
}

実行結果の例:

2011/03/30 14:56:11