Поиск файлов и папок, рекурсивный. |
Здравствуйте, гость ( Вход | Регистрация )
Поиск файлов и папок, рекурсивный. |
Гость_йцукен_* |
31.10.2007, 11:03
Сообщение
#1
|
Гости |
Как реализовать рекурсивный поиск?
|
|
|
ViGOur |
31.10.2007, 11:19
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Если без использования фильтров, то так:
|
|
|
Гость_йцукен_* |
31.10.2007, 11:23
Сообщение
#3
|
Гости |
А если с фильтрами, то чем отличается?
|
|
|
ViGOur |
31.10.2007, 11:28
Сообщение
#4
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Наличием фильтра.
Ну и тем, что с ними нужно быть аккуратным, так как из-за них можно не увидеть папки, соответственно ни о какой рекурсии не будет речи. |
|
|
Гость_йцукен_* |
31.10.2007, 11:29
Сообщение
#5
|
Гости |
Спасибо за помощь
|
|
|
CodeHunter |
23.9.2010, 12:11
Сообщение
#6
|
Студент Группа: Участник Сообщений: 33 Регистрация: 26.8.2010 Пользователь №: 1982 Спасибо сказали: 1 раз(а) Репутация: 0 |
foreach( QFileInfo fi, dir.entryInfoList()) { QString szFileName = fi.absoluteFilePath(); if( fi.isDir()) { if( fi.fileName()=="." || fi.fileName()=="..") continue; FindFileAndDir( szFileName); } if( fi.isFile()) { qnFileCount++; } } Плохой пример ! Вызов dir.entryInfoList() внутри папки например "C:\Windows\System32" повесит тебе прогу минут на 5 !! Лутше использовать QDirIterator !! QDirIterator it("С:\Windows\System32",QDirIterator::Subdirectories); while (it.hasNext()) { qDebug() << it.next(); // здесь можна обработать сообщения пришедшие форме !!! } |
|
|
Litkevich Yuriy |
23.9.2010, 13:13
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
CodeHunter, это будет на всех целевых платформах работать? Где-то краем уха слышал, что есть какие-то ограничения.
|
|
|
igor_bogomolov |
23.9.2010, 13:18
Сообщение
#8
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
CodeHunter, смотри на дату. QDirIterator на тот момент не существовало
|
|
|
CodeHunter |
23.9.2010, 17:19
Сообщение
#9
|
Студент Группа: Участник Сообщений: 33 Регистрация: 26.8.2010 Пользователь №: 1982 Спасибо сказали: 1 раз(а) Репутация: 0 |
CodeHunter, смотри на дату. QDirIterator на тот момент не существовало Если следовать твоей мысли то зачем тогда новое вообще писать есть же ответы на Qt 3 Я просто написал как будет правильнее на данный момент! Где-то краем уха слышал, что есть какие-то ограничения. Линк в студию ! Никогда подобного не слышал ! |
|
|
kwisp |
23.9.2010, 17:44
Сообщение
#10
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
извиниье, не в тему:
Я просто написал как будет правильнее на данный момент! зачем тогда писал Плохой пример ! ??? написал бы "Народ сейчас появилась новая более оптимальная возможность" и я уверен тебе бы сказали спасибо... а так как написал - как будто хочешь Эдика задеть что ли. Если я ошибаюсь поправь меня. Думаю у меня не у одного такие впечатления. |
|
|
Текстовая версия | Сейчас: 3.1.2025, 2:33 |