|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.10.2013, 14:15 | #1 |
Форумчанин
Регистрация: 26.08.2013
Сообщений: 187
|
Delphi FindFirst, не находит половину файлов.
Собственно такая картина:
Использую функцию FindFirst для поиска всех файлов в каталоге, функция не все файлы выводит, использую рекурсию для найденного каталога в директории. Если же не искать в каталогах а искать на корневом диске то функция находит все файлы, собственно код: Код:
Код:
Код:
Код:
И собственно код без рекурсии пропуская директории: Код:
|
30.10.2013, 14:27 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
У меня отработала норм.
I'm learning to live...
|
30.10.2013, 15:06 | #3 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
А почему вы решили, что сначала будут найдены все файлы, а только потом каталоги? Ведь может быть и вперемешку.
E-Mail: arigato.freelance@gmail.com
|
30.10.2013, 15:18 | #4 | |
Форумчанин
Регистрация: 26.08.2013
Сообщений: 187
|
Цитата:
ПЫСЫ сначала написал свой исходник с нуля(стараюсь все писать сам), думал я ошибку допустил, потом взял исходник из примеров, работает также. Последний раз редактировалось Winexcel; 30.10.2013 в 15:22. |
|
30.10.2013, 15:33 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
30.10.2013, 16:20 | #6 |
Форумчанин
Регистрация: 26.08.2013
Сообщений: 187
|
Ладно, хорошо, допустим что процедуры запускаются и раскидывают файлы в беспорядочно, создал критическую секцию:
Код:
|
30.10.2013, 16:37 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а давайте я Вам предложу другой вариант (честно говоря, думаю, что ваш тоже рабочий, просто где-то чуть-чуть логика нарушена...
Код:
Код:
если нужны все файлы, без маски, то if MatchesMask() then можно совсем удалить, как и передаваемую маску... |
30.10.2013, 16:44 | #8 | |
Форумчанин
Регистрация: 26.08.2013
Сообщений: 187
|
Цитата:
Код:
Код:
Код:
|
|
30.10.2013, 16:55 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Еще раз скажу что твой пример изначальный с рекурсией работает у меня норм. Вот моя старая версия обхода: http://www.programmersforum.ru/showt...ighlight=findA
I'm learning to live...
|
|
30.10.2013, 17:03 | #10 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
ТС, ответьте на несколько вопросов:
1) Такой поиск по всему диску C: должен выполняться уйму времени. Вы точно дожидаетесь окончания поиска? 2) Пробовали ли вы после окончания поиска поискать свои "потерявшиеся" файлы в середине/конце/любом_другом_месте_ списка (в вашей реализации там они и должны оказаться)? --------- Если вам нужен вывод файлов и содержимого подпапок не вперемешку (вангую, что проблема именно в этом), а "упорядоченно, то предлагаю следующий вариант: Код:
P.S. memo1.Lines.SaveToFile(extractfilep ath(paramstr(0))+'log.txt'); вынесите из рекурсивного метода, это же ужасно!
Благодарить в репутацию. Проклинать — туда же
Последний раз редактировалось Luuzuk; 30.10.2013 в 17:05. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поставил delphi +indy. При компиляции исходника не находит его компонентов | selevo | Общие вопросы Delphi | 0 | 15.04.2013 20:32 |
FileExists не находит половину файлов | HellMercenariess | Общие вопросы Delphi | 4 | 08.09.2012 21:12 |
Программа, которая находит площадь трапеции, квадрата и прямоугольника по введённым длинам сторон (на Delphi) | orange_wot | Помощь студентам | 3 | 10.04.2012 16:42 |
Не заносятся пути для всех файлов после FindFirst | artemavd | Общие вопросы Delphi | 8 | 02.12.2010 10:20 |
FindFirst | matus | Помощь студентам | 2 | 21.02.2008 19:34 |