计算目录中的文件

时间:2011-07-31 16:33:42

标签: c++ qt qt4

我想计算一个目录中的文件数,我在QDir类中使用了count方法,但它总是返回文件数加上两个!为什么要做这个工作? 感谢

5 个答案:

答案 0 :(得分:13)

QDir.count()返回目录中文件和目录的总数。这包括.(this)和..(父)目录条目。因此,计数总是比“真实”文件和子目录多两个。

答案 1 :(得分:12)

您应该将flags QDir::FiltersQDir::NoDotAndDotDot

一起使用

答案 2 :(得分:8)

我发布了一个完整的答案。

QString path = "c:\test"; // assume it is some path

QDir dir( path );

dir.setFilter( QDir::AllEntries | QDir::NoDotAndDotDot );

int total_files = dir.count();

答案 3 :(得分:5)

您需要排除... - QDir::Files过滤器可以帮助您。

相关文档:

答案 4 :(得分:0)

你可以使用:

QFileInfo fileInfo(m_logFilePath);
QDir dir(fileInfo.absoluteDir());
QStringList totalfiles;
totalfiles = dir.entryList(QStringList("*"), QDir::Files | QDir::NoSymLinks);

使用文件名

totalfiles = dir.entryList(QStringList("filename"), QDir::Files | QDir::Names);