Мне не нужны точка и точка - PullRequest
2 голосов
/ 06 декабря 2011

когда я перечисляю записи через QDir :: entryInfoList, я получаю две дополнительные записи: одну с точкой и вторую с двумя точками. Если я установлю QDir :: NoDot и QDir :: NoDotDot, тогда ничего не будет в списке. Мне нужно только содержимое папки, которую я передаю в QDir, больше ничего.

 QFileInfo fi(model_->filePath(e));
        auto file_path = fi.absoluteFilePath();
        auto lyst = QDir(fi.absoluteFilePath()).entryInfoList(/*QDir::NoDotAndDotDot makes lyst empty*/);
        foreach (QFileInfo info , lyst)
        {
            qDebug() << info.absoluteFilePath();
        }

Ответы [ 2 ]

8 голосов
/ 06 декабря 2011

Пропуск QDir::NoDotAndDotDot фильтр ИЛИ с QDir::Files или чем-либо интересующим вас до entryInfoList

auto lyst =
 QDir(fi.absoluteFilePath()).entryInfoList(QDir::NoDotAndDotDot|QDir::AllEntries);
2 голосов
/ 06 декабря 2011

Согласно этому посту :

Значением по умолчанию для флагов фильтра является QDir::AllEntries. Когда вы переопределяете флаги по умолчанию с помощью QDir::setFlags или QDir::entryList, вы не должны забывать включить хотя бы один из QDir::Dirs, QDir::Files или QDir::Drives для получения любых записей.

Я полагаю, ваш код будет выглядеть так (еще не проверял):

QFileInfo fi(model_->filePath(e));
auto file_path = fi.absoluteFilePath();
auto lyst = QDir(fi.absoluteFilePath()).entryInfoList(QDir::NoDotAndDotDot | QDir::Dirs | QDir::Files);
foreach (QFileInfo info , lyst)
{
    qDebug() << info.absoluteFilePath();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...