わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

ファイルの作成日時、最終アクセス日時、最終更新日時を取得する

ファイルの作成日時、最終アクセス日時、最終更新日時を取得するには GetFileTime()関数を利用します。GetFileTime()関数は、 FILETIME形式で日時を取得できます。普段利用しているような年/月/日などの SYSTEMTIMEで取得したい場合は、FileTimeToSystemTime()関数で、FILETIME形式から SYSTEMTIME形式に変換する事ができます。

ファイルの作成日時、最終アクセス日時、最終更新日時を取得する
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <windows.h>
 
 
 
/*
    FILETIMEの表示
*/
void DispFileTime
(
      TCHAR* wpDispName
    , FILETIME* tpFileTime
)
{
    SYSTEMTIME tSystemTime;
 
    // FILETIMEをSYSTEMTIMEに変換する
    ::FileTimeToSystemTime( tpFileTime, &tSystemTime );
 
    const static TCHAR* wpaWeekName[] = {
        L"日", L"月", L"火", L"水", L"木", L"金", L"土"
    };
 
    // 名称
    wprintf( L"%s¥n", wpDispName );
 
    // SYSTEMTIME表示
    wprintf( L"¥t%04d/%02d/%02d(%s) %02d:%02d:%02d.%03d¥n"
            , tSystemTime.wYear
            , tSystemTime.wMonth
            , tSystemTime.wDay
            , wpaWeekName[ tSystemTime.wDayOfWeek ]
            , tSystemTime.wHour
            , tSystemTime.wMinute
            , tSystemTime.wSecond
            , tSystemTime.wMilliseconds
        );
 
    // 改行
    wprintf( L"¥n" );
}
 
 
 
/*
    ファイルの作成日時、最終アクセス日時、最終更新日時を取得する
*/
int _tmain
(
      int argc
    , _TCHAR* argv[]
)
{
    // 標準出力にユニコード出力する
    setlocale( LC_ALL, "Japanese" );
 
    // ファイルのオープン
    HANDLE hFile = ::CreateFile(
              L"c:¥¥org¥¥test1.txt"
            , 0
            , 0
            , NULL
            , OPEN_EXISTING
            , FILE_ATTRIBUTE_NORMAL
            , NULL
        );
 
    // オープン確認
    if ( INVALID_HANDLE_VALUE != hFile ) {
 
        FILETIME tCreationTime;     // 作成日時
        FILETIME tLastAccessTime;   // 最終アクセス日時
        FILETIME tLastWriteTime;    // 最終更新日時
 
        // ファイルの作成日時、最終アクセス日時、最終更新日時を取得する。
        if ( 0== ::GetFileTime( hFile, &tCreationTime, &tLastAccessTime, &tLastWriteTime ) ) {
            std::wcout << L"取得失敗しました。" << std::endl;
        }
        else {
 
            // ファイルの作成日時の表示
            DispFileTime( L"ファイルの作成日時", &tCreationTime );
 
            // 最終アクセス日時の表示
            DispFileTime( L"最終アクセス日時", &tLastAccessTime );
 
            // 最終更新日時の表示
            DispFileTime( L"最終更新日時", &tLastWriteTime );
        }
 
        // ファイルのクローズ
        ::CloseHandle( hFile );
    }
 
    // 正常終了
    return( 0 );
}

実行結果

ファイルの作成日時
    2013/01/24(木) 14:46:25.826

最終アクセス日時
    2013/01/24(木) 14:46:25.826

最終更新日時
    2013/01/24(木) 14:46:25.826






わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。