#delphi
Есть программа, которая ищет файлы в папке и вносит изменения в них, но она не учитывает вложенные папки. Что тут прописать, чтобы она учитывала вложенные папки ?: Код: procedure Tfrm_Main.cb_SubfolderClick(Sender: TObject); begin end;
Ответы
Ответ 1
Из вашего кода, что вы привели, ничего не понятно. Пустая процедура и всё :) Ладно, вопрос примерно ясен. Всё зависит от того, КАК вы ищете файлы по заданному пути. Если вы это делаете с помощью FindFirst, то используйте, например, рекурсию, проверяя, папка ли это или файл: procedure FindAllAdnChange(path:string); var sr: TSearchRec; s:string; begin s:=path+'\*.*'; // будем искать все объекты в текущей папке if FindFirst(s, faAnyFile, sr) = 0 then // нашли что-то repeat if ((sr.Attr and faDirectory) <> 0) and (sr.Name <> '.') and (sr.Name <> '..') then // если это папка, причём не "." и не ".." FindAllAdnChange(path+'\'+sr.Name) // запустим рекурсию, перейдя на уровень ниже else // а если это файл begin // тут делаем, что мы хотим с нашими файлами end; until FindNext(sr) <> 0; // пока не кончится цепочка найденных объектов в папке FindClose(sr); // освобождаем ресурсы end; Вызываем процедуру так: FindAllAdnChange('K:\Utils'); По-хорошему, нужно ещё бы проверять в процедуре уровень рекурсии, просто увеличивая счётчик. Но это вы уже сами :)
Комментариев нет:
Отправить комментарий