Просматриваем содержимое папки при помощи QDir Qt

Будем создавать консольное приложение, чтобы не описывать лишних манипуляций по добавлению виджетов и т.д.
Прежде всего необходимо подключить заголовочные файлы:

#include <QDir>
#include <QtCore>
#include <iostream>

Теперь рассмотрим функцию main нашего приложения:

int main(int argc, char *argv[]) {
    QCoreApplication app(argc, argv);    //консольное приложение
    QDir dir;  //объявляем объект работы с папками
    dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);   ///устанавливаем фильтр выводимых файлов/папок (см ниже)
    dir.setSorting(QDir::Size | QDir::Reversed);   //устанавливаем сортировку "от меньшего к большему"
    QFileInfoList list = dir.entryInfoList();     //получаем список файлов директории
    std::cout << "     Bytes Filename" << std::endl;   //выводим заголовок
    /* в цикле выводим сведения о файлах */
    for (int i = 0; i < list.size(); ++i) {
        QFileInfo fileInfo = list.at(i);
        std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10).arg(fileInfo.fileName()));   //выводим в формате "размер имя"
        std::cout << std::endl;  //переводим строку
    }
    return 0;
}

Т.к. это приложение консольное уместно будет и откомпилировать в консоли:

qmake -project QDir
qmake
make

Теперь запустите полученный файл:

./QDir

ну или

QDir

если у вас ненароком Windows.
Вы должны увидеть примерно такой вывод:

$ ./QDir
     Bytes Filename
       299 QDir.pro
       665 QDir.cpp
      6422 Makefile
      7240 QDir.o
     14659 QDir

На этом всё.
зы установить рабочую папку можно вот так:

QString path = argv[1];
dir.cd(path);

При этом папка будет передана в качестве параметра при запуске.

Просмотров:   10188