Подсчет файла в каталоге - PullRequest
3 голосов
/ 31 июля 2011

Я хочу посчитать количество файлов в каталоге, я использовал метод count в классе QDir, но он всегда возвращает номер файла плюс два! почему это делает эту работу? спасибо

Ответы [ 5 ]

13 голосов
/ 31 июля 2011

QDir.count() возвращает общее количество файлов и каталогов в каталоге. Это включает в себя записи каталога . (this) и .. (parent). Таким образом, счетчик всегда на два больше, чем «настоящие» файлы и подкаталоги.

12 голосов
/ 31 июля 2011

Вы должны использовать flags QDir::Filters с QDir::NoDotAndDotDot

8 голосов
/ 07 июля 2015

Я отправляю полный ответ.

QString path = "c:\test"; // assume it is some path

QDir dir( path );

dir.setFilter( QDir::AllEntries | QDir::NoDotAndDotDot );

int total_files = dir.count();
5 голосов
/ 31 июля 2011

Вам нужно исключить фильтры . и .. - QDir::Files, которые могут вам помочь.

Соответствующие документы:

0 голосов
/ 01 июня 2018

Вы можете использовать:

QFileInfo fileInfo(m_logFilePath);
QDir dir(fileInfo.absoluteDir());
QStringList totalfiles;
totalfiles = dir.entryList(QStringList("*"), QDir::Files | QDir::NoSymLinks);

используя имя файла

totalfiles = dir.entryList(QStringList("filename"), QDir::Files | QDir::Names);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...