我想计算一个目录中的文件数,我在QDir类中使用了count方法,但它总是返回文件数加上两个!为什么要做这个工作? 感谢
答案 0 :(得分:13)
QDir.count()
返回目录中文件和目录的总数。这包括.
(this)和..
(父)目录条目。因此,计数总是比“真实”文件和子目录多两个。
答案 1 :(得分:12)
您应该将flags QDir::Filters
与QDir::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);