Сканирование каталога и получение последнего соответствующего времени создания - PullRequest
1 голос
/ 10 мая 2011

В Linux я могу открыть каталог, используя opendir, а затем использовать readdir, чтобы получить имена файлов.

Я экспериментировал со scandir и подумал: "Отлично, я могу искать файлы в этом каталоге, которые мне нужны, с помощьюпередать в пользовательский фильтр ", и сортировать, используя пользовательскую сортировку, где я хочу отсортировать по дате создания.Но потом я понял, насколько ограничена эта страшная структура.Он содержит только минимальную информацию.

Это единственный возможный API?то есть мне нужно статистировать каждый файл, чтобы получить его размер для сортировки?Так работает ls -t?

Ответы [ 2 ]

1 голос
/ 11 мая 2011

То есть, действительно, как работает ls -t, как подтвердит 'strace ls -t'.Исторически каталог UNIX был просто специальным файлом, содержащим список имен файлов, и приложения должны были сами считывать и анализировать этот «файл».Естественно, это привело к проблемам при разработке более новых файловых систем, которые расширили фиксированную длину имен файлов, поэтому был разработан интерфейс opendir / readdir / closedir, чтобы абстрагировать реализацию каталога файловой системы.Но ограничение на то, что непосредственно доступно в списке каталогов, остается.

0 голосов
/ 10 мая 2011

POSIX не имеет средств для хранения времени создания, а тем более его извлечения.

...