Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Учитывать вложенные файлы в папки

#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'); По-хорошему, нужно ещё бы проверять в процедуре уровень рекурсии, просто увеличивая счётчик. Но это вы уже сами :)

Комментариев нет:

Отправить комментарий