Do you know a faster solution to find all of the directories by Qt(QDirIterator is too slow)
QDirIterator directories
(dir_,
QDir::Dirs |
QDir::NoSymLinks |
QDir::NoDotAndDotDot, QDirIterator
::Subdirectories);
while(directories.hasNext()){
directories.next();
dirs.push_back(directories.filePath());
}
QDirIterator directories(dir_, QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
QStringList dirs;
while(directories.hasNext()){
directories.next();
dirs.push_back(directories.filePath());
}
To copy to clipboard, switch view to plain text mode
//codes base on BFS(breadth first search)
{
std::queue<QString> queue;
queue.push(dir.absolutePath());
while (!queue.empty()) {
auto const subdir_name = queue.front();
queue.pop();
results.push_back(subdir_name);
QDir subdir
(subdir_name
);
auto const &directories = subdir.entryInfoList({},
for (auto const &data : directories) {
queue.push(data.absoluteFilePath());
}
}
return results;
}
//codes base on BFS(breadth first search)
QStringList scan_dir_recursive(QDir const &dir)
{
std::queue<QString> queue;
queue.push(dir.absolutePath());
QStringList results;
while (!queue.empty()) {
auto const subdir_name = queue.front();
queue.pop();
results.push_back(subdir_name);
QDir subdir(subdir_name);
auto const &directories = subdir.entryInfoList({},
QDir::AllDirs | QDir::NoSymLinks | QDir::NoDotAndDotDot);
for (auto const &data : directories) {
queue.push(data.absoluteFilePath());
}
}
return results;
}
To copy to clipboard, switch view to plain text mode
Bookmarks