Извините, если это было задано раньше, но я не мог найти нужные слова в поиске, и это могло повлиять на результаты поиска, так или иначе я вернулся к 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++, но я не помню, чтобы использовать такие вещи?
Чтобы получить доступ к данным статического класса, вы можете использовать :: operator, например
QFileInfo::someStaticData
Более того, набрав
if(QFileInfo(dir.filePath()).isFile())
вы создаете временный объект QFileInfo, который удаляется сразу после оператора if. Вероятно, вы захотите сохранить объект в некоторой локальной переменной, например:
QFileInfo fileInfo(dir.filePath());
и использовать эту переменную в операторах if:
if(fileInfo.isFile()) {
if(fileInfo.suffix() == extention)
....
}