|
こんばんは、よろしくお願いいたします。
gcc,cygwin環境でやっております。
ディレクトリ内から最新の更新日付であるファイル名を取得したいのですが途中で苦戦しています。ファイル一覧の取得と最終更新日付の取得はサイトを検索して試しに表示するところまではできました。
しかし更新日付を比較する前の段階でとまっています。
printf("%s",ctime(&filestat.st_mtime));で表示させると当然フォーマットが決まっているので、yyyymmddmmssのように取得して比較すればできるかもと考えています。間違っているかもしれませんが、間違いかどうか残念ながら判断できる能力を持ち合わせておりません。一つ一つをまわしながら比較していくぐらいしか分かりません。
ご教授よろしくお願い致します。一応ソースを明記しておきます。
#define LOG "LOG_No"
int main()
{
char buf[25];
DIR *dir;
struct dirent *dp;
struct stat filestat;
//dir = opendir(".");
//ディレクトリを開く
dir = opendir("C:/cygwin/home/log");
while((dp=readdir(dir)) != NULL) {
//ディレクトリ内の一覧を取得
stat(dp->d_name,&filestat);
if (strncmp(LOG,dp->d_name,6) == 0)
{
printf("%s",dp->d_name);
//printf("%s",ctime(&filestat.st_mtime));
//printf("%a%m%d%H%M%S%Y", ctime(&filestat.st_mtime));
printf("%s",ctime(&filestat.st_mtime));
}
}
//ディレクトリをクローズ
closedir(dir);
return 0;
}
|