我需要将*NIX
文件系统中的所有文件作为项目的一部分来计算,以实现此目的,创建递归方法如下:
// private member -> quint64 m_files_count = 0;
quint64 MyClass::filesToCount(const QString &searchDirs, const QStringList &excl_dirs = QStringList())
{
QDir dir(searchDirs);
if(excl_dirs.contains(dir.absolutePath()))
return 0;
QStringList dirs = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::NoSymLinks);
foreach(QString d, dirs)
{
filesToCount(dir.absoluteFilePath(d), excl_dirs);
}
QStringList files = dir.entryList(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
m_files_count += files.size();
return m_files_count;
}
但这种方法效果很慢,需要时间! 你能建议任何快速计算文件系统中所有文件的方法吗?
种类问候!