Russian Qt Forum
Ноябрь 23, 2024, 04:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проверка наличия файлов  (Прочитано 4843 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Январь 27, 2016, 12:05 »

Добрый день

Юзер назначает путь (точнее даже 2 пути), где может быть много всяких файлов. Я знаю имена файлов которые всегда должны быть и могу найти их рекурсивно. Если не нашел вываливаю месягу типа "А Вы уверены? и.т.п.". Но вот что делать если путь - диск или десктоп или еще что-то где фалов немеряно? К сожалению, файлы могут находиться на любом уровне вложенности и имена под-каталогов могут быть любыми.

Спасибо
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Январь 27, 2016, 12:20 »

А почему файлы, которые всегда должны быть, не хранить в определенном месте?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Январь 27, 2016, 12:25 »

А почему файлы, которые всегда должны быть, не хранить в определенном месте?
Это не я решаю, а др (не мое) приложение
Записан
Bepec
Гость
« Ответ #3 : Январь 27, 2016, 12:29 »

Окно с прогрессбаром?
Или озвучьте вопрос, если я неправильно его понял.
Записан
dddasd
Гость
« Ответ #4 : Январь 27, 2016, 14:09 »

Код:
QStringList filter;
    filter << "settings.ini";
    QDirIterator iter(a.applicationDirPath(),filter,QDir::NoDotAndDotDot | QDir::Files,QDirIterator::Subdirectories);
    while (iter.hasNext()) {
         qDebug() << iter.next();
    }
как-то так...
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #5 : Январь 27, 2016, 15:36 »

Окно с прогрессбаром?
Или озвучьте вопрос, если я неправильно его понял.

Плюс запустить несколько потоков, и каждому по подпапке Улыбающийся

А также добавить всякие системные папки (Windows там например и пр.) в список исключений, чтобы там не искать.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #6 : Январь 27, 2016, 15:53 »

Плюс запустить несколько потоков, и каждому по подпапке Улыбающийся

А также добавить всякие системные папки (Windows там например и пр.) в список исключений, чтобы там не искать.
А после полные пути к файлам в кеш и пока они открываются использовать их, если перестали - повторный поиск.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Январь 28, 2016, 09:23 »

Видимо здесь нет решения. Пример: если нет файлов *.fbx - директория некорректна, ее задание не имеет смысла. Но если даст диск - на нем какие-то *.fbx найдутся, возможно даже "те самые" но дальше до них загрузчик не дотянется, у него свои правила поиска. Чего ж тогда молотить весь диск? Придется как-то менять постановку

Ну бывает и так, спасибо за обсуждение.   
Записан
Bepec
Гость
« Ответ #8 : Январь 28, 2016, 09:29 »

Сделайте ограничение в глубину поиска, вот и всё.
Ну или как оригинальное решение для Windows - заодно со своей программой ставить everything и после лазить сразу в его бд, получая ответ о наличии на диске файла за 10-15мс.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 23.