QDir :: entryInfoList неожиданное поведение - PullRequest
4 голосов
/ 24 октября 2011

Мой код довольно прост:

void DirManagement::listFiles(QDir dir)
{
   QFileInfoList list = dir.entryInfoList(QDir::NoFilter, QDir::NoSort);
   for (int i = 0; i < list.size(); ++i)
   {
      QFileInfo fInfo = list.at(i);
      QString fPath = fInfo.absoluteFilePath();
      qDebug() << "# " << i << fPath;   }
}

Проблема в том, что если мой путь к каталогу: "/ home / adasi / Desktop / GCUFolder", то это результат:

#  0 "/home/Alya/Desktop/MCUFolder" 
#  1 "/home/Alya/Desktop" 
#  2 "/home/Alya/Desktop/MCUFolder/32Mon Oct 24 2011" 
#  3 "/home/Alya/Desktop/MCUFolder/32Sun Oct 23 2011"

Тем не менее, я ожидаю ТОЛЬКО то, что находится в данном каталоге:

#  0 "/home/Alya/Desktop/MCUFolder/32Mon Oct 24 2011" 
#  1 "/home/Alya/Desktop/MCUFolder/32Sun Oct 23 2011"

Я пробовал большинство фильтров qt.Не сработало.

Ответы [ 3 ]

9 голосов
/ 24 апреля 2012

Просто для добавления дополнительной информации. Это сработало, как сказал Мэт, указав, что вы хотите перечислить, например:

myQdirObject.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::NoSort);
1 голос
/ 24 октября 2011

Используйте фильтр QDir::NoDotAndDotDot, он удалит сам каталог и его родителя из поиска.

0 голосов
/ 24 октября 2011

entryInfoList должен вызываться с фильтром QDir::NoDot | QDir::NoDotDot:

QFileInfoList list = dir.entryInfoList(QDir::NoDot | QDir::NoDotDot, QDir::NoSort);

Проверьте соответствующую документацию Qt , чтобы узнать больше фильтров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...