Авторизация

Логин: Пароль:
Регистрация Забыли свой пароль?

Получить список файлов в директории

Страницы: 1
Получить список файлов в директории
Как средствами Delphi получить список файлов в определенной директории и загрузить его в например в TMemo?
если по ленивому то TFileListBox(свойства Directory - папка; Items - список файлов)
Изменено: Frees - 21.09.2010 10:35:17
Код
var
 searchResult : TSearchRec;
begin
 if FindFirst('D:\*', faAnyFile, searchResult) = 0
  then
   begin
    repeat
     if FileExists('D:\' + searchResult.Name)
      then
       begin
        Memo1.Lines.add(searchResult.Name); 
       end;
    until FindNext(searchResult) <> 0;
    FindClose(searchResult);
   end;
end;
А как найти например, все файлы с расширением .mpg и .avi?
Я сделал так
Код
procedure TForm1.loadPlayList;
var SearchRec:TSearchRec;
begin
    form1.PlayList.Clear;
   If FindFirst(PATH+'*.*', faAnyFile, SearchRec)=0 then
    repeat
    
    if (UpperCase( copy( SearchRec.Name,length( SearchRec.Name )-2,3 ))='MPG') or
      (UpperCase(copy(SearchRec.Name,length(SearchRec.Name)-2,3))='AVI') then
          Form1.PlayList.items.Add(SearchRec.Name);
    until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
  if Form1.PlayList.Items.Count>0 then
        Form1.PlayList.Selected[0]:=true;
end;
If FindFirst(PATH+'*.mpg', faAnyFile, SearchRec)=0 then
нет, надо чтоб и .mpg и .avi . Было бы хорошо если можно было бы задать так, типо регэксп '.(mpg|avi)'.
Цитата
    if (UpperCase( copy( SearchRec.Name,length( SearchRec.Name )-2,3 ))='MPG') or
      (UpperCase(copy(SearchRec.Name,length(SearchRec.Name)-2,3))='AVI') then

Есть функция которая из имени файла выделяет его расширение smile;)
function ExtractFileExt(const FileName: string): string;
А я и не знал, клево =)
А как можно получить список всех папок в данной папке, чтобы рекурсивно можно было обойти всю структуру каталогов?
Код
var 
searchResult : TSearchRec; 
begin 
if FindFirst('D:\*', faAnyFile, searchResult) = 0 
  then 
   begin 
    repeat 
     if FileExists('D:\' + searchResult.Name) 
      then 
       begin 
        Memo1.Lines.add(searchResult.Name); 
       end; 
    until FindNext(searchResult) <> 0; 
    FindClose(searchResult); 
   end; 
end; 


if searchResult.Attr = faDirectory then
Изменено: Valera - 24.10.2010 00:42:32
О, спасибо smile:)
Как я понял, можно сразу указывать faDirectory как аргумент у FindFirst.
О спасибо тоже. Как раз это мне нужно было. smile;)
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)