1

我开始使用 QT,并尝试 QDir 我将示例复制到 QT 的引用中,其中列出了文件夹的内容。

我正在尝试在 MacOS 雪豹(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

谁能告诉我为什么其他文件夹没有出现?

谢谢 :)

4

1 回答 1

3

过滤器添加到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;
}
于 2013-09-19T13:22:16.270 回答