Как посчитать количество файлов/папок по конкретному пути?
Нужно написать что-то вроде файлового менеджера.
Как посчитать количество файлов в каждом каталоге куда я перехожу по двойному нажатию на qtreeview?
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
// пример. Тут выводит количество папок в каталоге /users
QDir dir;
dir.setPath("/Users");
QStringList str = dir.entryList();
str.removeFirst();str.removeFirst();
int res = str.count();
qDebug() << res;
qDebug() << str;
//
infoList = new QFileInfoList();
model = new QFileSystemModel(this);
model->setRootPath("");
ui->treeView->setModel(model);
ui->lineEdit_filepath->setText(QDir::currentPath());
ui->lineEdit_filepath->setReadOnly(true);
}
UPD: Нужна функция подсчета размера каталогов) Моя крашится
long int MainWindow::getSize(QString path)
{
long double total_size = 0;
QDir current(path);
*infoList = current.entryInfoList();
infoList->removeFirst();infoList->removeFirst();
for(QFileInfo x : *infoList)
{
QString filename = x.fileName();
if(filename.isEmpty())
continue;
if(x.isDir())
{
if(path == "/")
total_size += getSize(path + filename);
else
total_size += getSize(path+"/"+filename);
continue;
}
else
total_size += x.size() ;
}
}
return total_size ;
}
Источник: Stack Overflow на русском