【C++】ファイルの作成日時・更新日時を取得する

C++アイコン C++

C++でファイルの作成日時や更新日時を取得する手順を紹介します。

スポンサーリンク

ファイルの作成日時を取得するには?

_stat関数を使用し、ファイルの作成された日時を取得します。

※ただし、Linuxでは作成日時は取得できません。

#include <sys/stat.h>
#include <stdio.h>

int main(int argc, char* args[])
{
    // ファイル情報を格納する構造体を用意しておく
    struct _stat buf;

    // ファイルの情報を取得する
    _stat( filename, &buf );

    // ファイルの作成日時を取得する
    // → &buf.st_ctime で取得できる createdのc
    
    // ファイルの作成日時を表示する
    char str[26];//日時文字列をおいておく変数
    ctime_s(str, sizeof(str), &buf.st_ctime);//日時文字列に変換
    wprintf("%s",str); //日時文字列を出力する
}

このように作成日時が出力されます。

Fri Sep 18 13:03:39 2021
スポンサーリンク

ファイルの更新日時を取得するには?

ファイルの更新日時を取得するときも_stat関数を使用します。

#include <sys/stat.h>
#include <stdio.h>

int main(int argc, char* args[])
{
    // ファイル情報を格納する構造体を用意しておく
    struct _stat buf;

    // ファイルの情報を取得する
    _stat( filename, &buf );

    // ファイルの更新日時を取得する
    // → &buf.st_mtime で取得できる modifiedのm
    
    // ファイルの更新日時を表示する
    char str[26];//日時文字列をおいておく変数
    ctime_s(str, sizeof(str), &buf.st_mtime);//日時文字列に変換
    wprintf("%s",str); //日時文字列を出力する
}

timeを任意の形式にフォーマットするには?

「Y/m/d H:i:s」のように日時を任意の形式の文字列に変換したいときは、次のページを参考にしてください。

コメント

タイトルとURLをコピーしました