Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

получения списка файлов в каталоге и подкаталогах [linux]


Zhbr   (31.01.14 02:31

Как получить список файлов в папке и всех ее подпапок
Через TSearchRec пробовал но там соответственно получается две процедуры делать, получения списка каталогов а потом файлов, причем всем этим управлять нужно + ошибочные записи)) может кто знает как проще))?


Rouse_ ©   (31.01.14 13:38[1]


> Через TSearchRec пробовал но там соответственно получается
> две процедуры делать, получения списка каталогов а потом
> файлов

Зачем две? Почему одной не получается?


Zhbr   (31.01.14 19:09[2]

получается одной процедурой получаю список каталогов для указанного пути, другой список файлов для указанного пути.
может подскажете как одной, у меня идей как это сделать нет


Rouse_ ©   (31.01.14 19:46[3]

Показывай свой код.


Zhbr   (01.02.14 13:26[4]

Процедура получения списка папок:
procedure GetDirList (path:string);
 var SearchDir:TsearchRec;
 begin
   SetCurrentDir(path);
   If FindFirst ('*',faDirectory,SearchDir)=0 then
   begin
        repeat
        begin
             If (SearchDir.Attr and faDirectory) = faDirectory then
             begin
             if (SearchDir.Name <> '..') and (SearchDir.Name <> '.') then
                begin
                     writeln(Path + SearchDir.Name + '/');
                     dir[countD]:=Path + SearchDir.Name + '/';
                     Inc(countD);
                end;
             end;
        end;

        until FindNext(SearchDir)<>0;
   end;
   FindClose(SearchDir);
 end;  


Получение списка файлов:
procedure GetFileList (path:string);
 var SearchFiles:TsearchRec;
 begin
      SetCurrentDir(path);
      If FindFirst ('*',faAnyFile,SearchFiles) = 0 then
         begin
         repeat
         
         
                if (SearchFiles.Attr and faDirectory) <> faDirectory then
                   begin
                   
                        files[countF]:=Path + SearchFiles.Name;
                        inc(countF);
               
                      end;
         until FindNext(SearchFiles) <> 0;
         FindClose(SearchFiles);
         end;
 end;    


Этот кусок управляет ими:
var searching:boolean;
   countT:integer;
   i : integer;
begin
countF:=0;
countD:=1;
countT:=1;
searching:=true;
Write('Введите путь проверки ');
Readln (dir[0]);
GetDirList(dir[0]);
while searching=true do
begin
 GetDirList(dir[countT]);
 inc(countT);
 if countT = countD then searching:=false;
end;
Writeln ('Кол-во папок = ',countT);
for i:= 0 to countT-1 do GetFileList(dir[i]);
readln;
end.    


Rouse__   (01.02.14 23:00[5]

Второй вариант немного причесать и получится то что ты хочешь


java73 ©   (24.06.15 12:51[6]

Есть функция FindAllFiles же:

 DumpDir:=AppendPathDelim(ExtractFileDir(ParamStrUTF8(0)))+'Dump';
 DumpDir:=AppendPathDelim(DumpDir);
 if DirPathExists(DumpDir) then begin
   SQLFiles:=TStrings.Create;
   SQLFiles:=FindAllFiles(DumpDir,'*.sql',FALSE);
   for I:=0 to SQLFiles.Count do begin
     DBLabel.Caption:='Выполняется импорт из файла '+SQLFiles.Strings[I];
     DM1.SQLproc.Clear;
     DM1.SQLproc.LoadFromFile(UTF8ToSys(SQLFiles.Strings[I]));
     DM1.SQLproc.Execute;
   end;
   DBLabel.Caption:='Импорт успешно завершён';
   SQLFiles.Free;
 end else ShowMessage('Каталог с дампом не найден');      


Rouse_ ©   (24.06.15 18:23[7]


> java73 ©   (24.06.15 12:51) [6]
> Есть функция FindAllFiles же:

Ты молодец. Системный подход виден.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо