Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
procedure GetDir (foldername:string); {процедура сбора директорий в директории} var sr:tsearchrec;// сюда будем записывать begin Form1.Memo1.Lines.Clear; // ШАГ 1 проверка корректности директории {if foldername[length(foldername)] <>'\' then foldername:=foldername+'\'; //Аналогично можно реализовать с IncludeTrailingPathDelimiter см. ниже } foldername:=IncludeTrailingPathDelimiter(foldername); try // ШАГ 2 Собственно поиск директории if findfirst(foldername+'*.*',faAnyFile,sr)=0 then // если поиск успешен repeat //проверки, '..' - это родительский каталог // '.' - это текущий каталог // '' - это папка с пустым именем if not ((sr.Name='') or (sr.Name='..') or (sr.Name='.')) and (sr.Attr=faDirectory) //только директории {чтобы все файлы + директории - закомментировать строчку выше иначе только директории} then Form1.Memo1.Lines.Add(sr.Name); //Выводим результат в Memo until (findnext(sr)<>0); finally FindClose(sr); end; end; |