У меня есть путь как:
C: \ путь \ к \ мой * файл \
и я хотел бы получить соответствующий полный путь (если он существует):
C: \ путь \ к \ my1file \
Я пытался с этим кодом Qt, но результат тот же путь, который я имел в начале:
QStringList filters;
filters << "C:/path/to/my*file/";
QDir dir;
dir.setNameFilters(filters);
QStringList dirs = dir.entryList(filters);
_path = dirs.at(0); // get the first path only
Разве я не должен получить все файлы / каталоги, которые проходят через фильтр?
Почему _path равен «C: / path / to / my * file /»?
Можно ли сделать то же самое только с C ++ 98 / STL? (В этом проекте я не могу использовать Boost / C ++ 11).
использование filters
для фильтрации файлов / папок и установки пути в объекте QDir:
QStringList filters;
filters << "my*file";
QDir dir("C:/path/to/");
QStringList dirs = dir.entryList(filters);
if (dirs.size() > 0)
{
qDebug() << dirs.at(0);
}
Расширение имен файлов называется globbing. В Windows функции FindFirstFile () / FindNextFile () выполняют глобализацию.