Фильтровать / исключать каталог при использовании QDirIterator в Qt - PullRequest
1 голос
/ 13 марта 2012

Мне интересно, возможно ли исключить / отфильтровать каталог при использовании QDirIterator.Я хотел бы, чтобы он пропустил / полностью игнорировал.

        QString SkipThisDir = "C:\stuff";

        QDirIterator CPath(PathToCopyFrom,  QDir::AllEntries | QDir::NoSymLinks, QDirIterator::Subdirectories );


            while(CPath.hasNext())
            {
                CPath.next();
                //DoSometing
            }

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Я не вижу ничего в API для QDirIterator, который бы делал именно то, что вы хотите. Тем не менее, что-то простое, как показано ниже, будет работать.

while (CPath.hasNext())
{
    if (CPath.next() == SkipThisDir)
        continue;
    //DoSomething
}
0 голосов
/ 13 марта 2012

Прежде всего, вам нужно добавить еще один обратный слеш к вашему SkipThisDir, чтобы избежать его.

Second you could do a check at the beginning of the while loop and if the current folder is the one you want to skip you could continue to the next directory.

QString SkipThisDir = "C:\\stuff";

QDirIterator CPath(PathToCopyFrom,  QDir::AllEntries | QDir::NoSymLinks, 
                   QDirIterator::Subdirectories );


while(CPath.hasNext())
{
    QString currentDir = CPath.next();
    if (currentDir == SkipThisDir)
         continue; 
    //DoSometing
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...