我的代码非常简单:
void DirManagement::listFiles(QDir dir)
{
QFileInfoList list = dir.entryInfoList(QDir::NoFilter, QDir::NoSort);
for (int i = 0; i < list.size(); ++i)
{
QFileInfo fInfo = list.at(i);
QString fPath = fInfo.absoluteFilePath();
qDebug() << "# " << i << fPath; }
}
问题是,如果我的目录路径是:“/ home / adasi / Desktop / GCUFolder” 这是结果:
# 0 "/home/Alya/Desktop/MCUFolder"
# 1 "/home/Alya/Desktop"
# 2 "/home/Alya/Desktop/MCUFolder/32Mon Oct 24 2011"
# 3 "/home/Alya/Desktop/MCUFolder/32Sun Oct 23 2011"
但是,我期待的只是给定目录下的内容:
# 0 "/home/Alya/Desktop/MCUFolder/32Mon Oct 24 2011"
# 1 "/home/Alya/Desktop/MCUFolder/32Sun Oct 23 2011"
我尝试了大多数qt过滤器。没用。
答案 0 :(得分:9)
只是为了添加更多信息 它就像Mat说的那样,指定你要列出的内容,如下所示:
myQdirObject.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::NoSort);
答案 1 :(得分:1)
使用QDir::NoDotAndDotDot
过滤器,这将从搜索中删除目录本身及其父目录。
答案 2 :(得分:0)
应使用entryInfoList
过滤器调用QDir::NoDot | QDir::NoDotDot
:
QFileInfoList list = dir.entryInfoList(QDir::NoDot | QDir::NoDotDot, QDir::NoSort);
检查corresponding Qt Documentation以获取更多过滤器。