3

現在、ディレクトリ内のベース名から最も古いファイルを見つける必要があるプロジェクトに取り組んでいます。

たとえば、ファイルのベース名は mylog かもしれませんが、mylog_060620121421.txt のようなすべてのファイルを調べる必要があります。mylog_ であるすべてのファイルから、最も古いファイル、つまり最初に作成されたファイルを見つける必要がありますが、これを行う方法が見つかりません。

ファイル名を一覧表示する scandir コマンドを見たことがありますが、それを使用してファイルの最も古い日付を見つける方法がわかりません。

4

2 に答える 2

3

stat()を使用
するコマンド「man-S 2 stat」を実行して、詳細を確認してください。

#include <sys / stat.h>
struct stat structstat;
stat(ファイル名、&structstat)
printf( "最終変更時刻:%s"、ctime(&structstat.st_mtime));

ここで、filenameは文字列/文字です*ファイルを表すstructstatは、sys/stat.hにあるstatの構造です。

最も古いファイルは、変更時刻が最も古いstructstat.st_mtimeであり、両方がない場合は、タイプブレーカーにstructstat.st_ctime(ステータス変更)を使用できます...

于 2012-06-08T14:25:04.790 に答える
3

Linux では、次のディレクトリを入力するだけです。

ls -trl

これにより、最も古いファイルから始まるリストが表示されます。名前を直接取得したい場合は、次の方法で取得できます。

ls -tr | head - 1
于 2012-06-08T13:46:59.087 に答える