Qt - c ++: о том, как использовать QFileInfo без объекта

0

Извините, если это было задано раньше, но я не мог найти нужные слова в поиске, и это могло повлиять на результаты поиска, так или иначе я вернулся к c++, и я решил запрограммировать простой инструмент, пока я программировал я нужен способ поиска файла в Qt, это код:

void Main_Sorter::SearchForFile(QString Path , QString extention , QString FileName)
{

    QDirIterator dir(Path , QDirIterator::Subdirectories);

    while(dir.hasNext())
    {

        dir.next();
        if(QFileInfo(dir.filePath()).isFile())
            if(QFileInfo(dir.filePath()).suffix() == extention)
                if(QFileInfo(dir.filePath()).fileName() == FileName)
                    qDebug()<<"file found ! " + FileName;

    }

}

Мне было интересно, как мы здесь используем имя класса? "QFileInfo" без объекта для его контроля? и как мы получили объект QFileInfo из

 QFileInfo(dir.filePath())

это было слишком долго, так как я использовал c++, но я не помню, чтобы использовать такие вещи?

  • 0
    Вы не используете это без объекта. Вы не могли :)
Теги:
qt

1 ответ

1
Лучший ответ

Чтобы получить доступ к данным статического класса, вы можете использовать :: operator, например

QFileInfo::someStaticData

Более того, набрав

if(QFileInfo(dir.filePath()).isFile())

вы создаете временный объект QFileInfo, который удаляется сразу после оператора if. Вероятно, вы захотите сохранить объект в некоторой локальной переменной, например:

QFileInfo fileInfo(dir.filePath());

и использовать эту переменную в операторах if:

if(fileInfo.isFile()) {
    if(fileInfo.suffix() == extention)
    ....
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню