
No.1ベストアンサー
- 回答日時:
> C言語でファイルの更新日を取得する方法を教えてください。
標準的な方法は存在しません。
環境を特定するのであれば、(ファイルの更新日という概念があるのなら)普通は何らかの方法が存在するはずです。
No.5
- 回答日時:
★Win32 API なら『GetFileTime』って関数がありますよ。
・C言語ではファイルの更新日を取得する標準関数はありません。
・取得する方法はいくつかありますが、結構めんどうですね。
・そこで、Win32 API で良ければ『GetFileTime』での取得方法を紹介します。
●サンプル
/* このファイルで使用する関数 */
#define FuncLoadFile(s,a) CreateFile((LPCTSTR)(s),(GENERIC_READ|GENERIC_WRITE),(FILE_SHARE_READ|FILE_SHARE_WRITE),NULL,OPEN_EXISTING,a,NULL)
/* 更新日時を取得する関数 */
static BOOL MyFileDateTime( LPSYSTEMTIME lpDate, LPCTSTR lpFileName )
{
FILETIME ftDate;
FILETIME lcDate;
HANDLE hFile;
if ( (hFile = FuncLoadFile(lpFileName,FILE_ATTRIBUTE_NORMAL)) != INVALID_HANDLE_VALUE ){
// GetFileTime( hFile, &ftDate, NULL, NULL ); ←作成日時のとき
// GetFileTime( hFile, NULL, &ftDate, NULL ); ←最終アクセス日時のとき
GetFileTime( hFile, NULL, NULL, &ftDate ); ←更新日時のとき
FileTimeToLocalFileTime( &ftDate, &lcDate ); ←世界標準時(UTC)からローカル時間に変換
FileTimeToSystemTime( &lcDate, lpDate ); ←システム時刻形式に変換
CloseHandle( hFile );
return( TRUE ); ←正常に取得できた。
}
return( FALSE ); ←エラー(ファイルが見つからないなど)
}
●使い方
SYSTEMTIME stDate;
if ( MyFileDateTime(&stDate,"abc.txt") ){
printf( "日付は %04d/%02d/%02d\n", stDate.wYear, stDate.wMonth, stDate.wDay );
printf( "曜日は %d\n", stDate.wDayOfWeek );
printf( "時刻は %04d:%02d:%02d\n", stDate.wHour, stDate.wMinute, stDate.wSecond );
}
・詳しい説明はここでは省略しますので下の『参考URL』をどうぞ。
参考URL:http://wisdom.sakura.ne.jp/system/winapi/win32/w …
No.4
- 回答日時:
開いているファイルの情報を得る
int _fstat( int fd, struct _stat *buffer );
パスで指定したファイルの情報を得る
int _stat( const char *path, struct _stat *buffer );
No.3
- 回答日時:
MSWindowsであれば
GetFilseTime()かFindFirstFile()あたりを使うんでしょうかねぇ。
BOOL GetFileTime(
HANDLE hFile, // ファイルのハンドル
LPFILETIME lpCreationTime, // 作成日時
LPFILETIME lpLastAccessTime, // 最終アクセス日時
LPFILETIME lpLastWriteTime // 最終更新日時
);
こっちは情報量多すぎか。。。
HANDLE FindFirstFile(
LPCTSTR lpFileName, // ファイル名
LPWIN32_FIND_DATA lpFindFileData // データバッファ
);
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[MAX_PATH];
TCHAR cAlternateFileName[14];
} WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
int16_t の _t は何?
-
gccを行ってもexeファイルが生...
-
DLLファイルの逆コンパイラにつ...
-
C++でデスクトップGUIアプリ開...
-
C言語 バッファについて。
-
VisualStudioでC++クラスを追加...
-
C#でTreeViewのCheckBoxのサイ...
-
ArduinoのジャイロモジュールMP...
-
VisualStudio2022でC言語プログ...
-
C# で 数式文字列処理を処理す...
-
C言語のことです。写真(見にく...
-
c++の勉強方法を教えてくださ...
-
逆コンパイルと逆アセンブルの...
-
パソコン
-
あんまり考えたくないけど
-
swift言語の最適化 swift最適化...
-
終端記号、非終端記号とは
-
C言語について。
-
C言語関数違いについて。
-
ディスプレイの解像度とマウス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0バイトのテキストファイル
-
【Excel VBA】取り込んだファイ...
-
Eclipseで検索ができなくなった
-
VBAで、JPG写真の撮影日時を読...
-
HTMLテキストリンクでExcelファ...
-
VB6.0のメモリリークについて
-
Appletにて入力文字のファイル...
-
C++.NET 2003 「空のドキュメ...
-
VB2008 iniファイルの全セクシ...
-
windows 環境でのファイル操作...
-
dllって?
-
パスワード設定のタグについて
-
ファイルを取得するC#のプロ...
-
main関数のコマンドライン引数...
-
Accessで一覧を表示するWebペー...
-
ファイル作成日時と更新日時を...
-
【VBA】印刷マクロのループ処理...
-
携帯電話への動画配信
-
ファイル内容を比較する方法
-
Javaのファイルダウンロードに...
おすすめ情報