Я пытаюсь моделировать поведение команды ls.Печать содержимого текущего каталога C++
Я создал простой код, используя библиотеку dirent.h
DIR *dir;
dirent *pdir;
dir=opendir(".");
while((pdir=readdir(dir)))
{
cout<< pdir->d_name << endl;
}
closedir(dir);
Мой текущий каталог содержит два файла, Screen.cpp и a.out. Я хотел бы этот код, чтобы напечатать его в порядке, как ls -la
команда будет, например,
.
..
a.out
Screen.cpp
однако этот код выводит его как
.
Screen.cpp
..
a.out
Есть ли простой способ, как добиться так без хранения/сортировки список в каком-нибудь контейнере?
довольно уверен, что 'readdir' не предлагает никаких гарантий относительно порядка его возврата. (будь то inode, местоположение диска, дата добавлена или что-то еще) – vu1p3n0x
Мне не разрешено использовать системные команды unix – Darlyn
Это не так сложно. С небольшим количеством работы вы можете конвертировать 'readdir' в итератор. Затем он становится в общей сложности тремя строками, чтобы читать сортировку и печатать записи. –