QTDir, почему бы не отображать все папки в корне "/" в MacOs?
Я начинаю использовать QT и пробую QDir. Я копирую пример в ссылках на QT, который перечисляет содержимое папки.
Я пытаюсь перечислить содержимое корневого пути в MacOS Snow Leopard, версия QT 5.1.1, но не все это появляется:S
Это код:
QFileInfoList list = QDir::root().entryInfoList();
for(int i=0; i<list.count(); i++){
cout<< list[i].fileName().toStdString()<<endl;
}
Но результат этой программы:
.
..
Applications
Developer
Library
opt
sockets.log
System
Users
Когда я думаю, что это должно быть: я знаю, что ls -l не показывают. и... я беспокоюсь о других папках, я поставил разрыв строки, разделяющий папки, которые появляются в выходных данных, и те, которые этого не делают.
$ ls -l /
drwxrwxr-x+ 63 root admin 2142 Sep 18 21:22 Applications
drwxrwxr-x@ 15 root admin 510 Jan 1 2012 Developer
drwxrwxr-t+ 63 root admin 2142 Sep 16 13:05 Library
drwxr-xr-x 3 root admin 102 Jul 23 02:45 opt
-rw-rw-rw- 1 Andreu admin 75 Sep 19 12:35 sockets.log
drwxr-xr-x 4 root wheel 136 Sep 15 20:49 System
drwxr-xr-x 5 root admin 170 Sep 15 20:17 Users
drwxr-xr-x@ 2 root wheel 68 Jun 23 2009 Network
drwxrwxrwt@ 5 root admin 170 Sep 16 14:01 Volumes
drwxr-xr-x@ 39 root wheel 1326 Sep 15 22:46 bin
drwxrwxr-t@ 2 root admin 68 Jun 23 2009 cores
dr-xr-xr-x 3 root wheel 4272 Sep 16 13:26 dev
lrwxr-xr-x@ 1 root wheel 11 Sep 15 20:04 etc -> private/etc
dr-xr-xr-x 2 root wheel 1 Sep 16 13:26 home
-rw-r--r--@ 1 root wheel 20828964 Jun 8 2011 mach_kernel
dr-xr-xr-x 2 root wheel 1 Sep 16 13:26 net
drwxr-xr-x@ 6 root wheel 204 Sep 15 20:08 private
drwxr-xr-x@ 67 root wheel 2278 Sep 15 22:46 sbin
lrwxr-xr-x@ 1 root wheel 11 Sep 15 20:04 tmp -> private/tmp
drwxr-xr-x@ 14 root wheel 476 Sep 16 13:07 usr
lrwxr-xr-x@ 1 root wheel 11 Sep 15 20:04 var -> private/var
Кто-нибудь может сказать мне, почему другие папки не появляются?
Спасибо:)
1 ответ
Решение
Добавить фильтр в entryInfoList
В Unix entryInfoList() не выводит список скрытых файлов. Вы должны "попросить" их. Я думаю, что это будет похоже на Mac.
QFileInfoList list = QDir::root().entryInfoList(QDir::AllEntries | QDir::System | QDir::Hidden);
for(int i=0; i<list.count(); i++){
cout<< list[i].fileName().toStdString()<<endl;
}