Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добавление вложенных папок в плейлист [D7, XP]


GeLLeR ©   (2006-08-23 15:26:00) 

Вот код:

procedure ScanDir(StartDir: string; Mask: string; List: TStrings);
var
 SearchRec: TSearchRec;
begin
 if Mask = '' then
   Mask := '*.*';
 if StartDir[Length(StartDir)] <> '\' then
   StartDir := StartDir + '\';
 if FindFirst(StartDir + Mask, faAnyFile, SearchRec) = 0 then
 begin
   repeat Application.ProcessMessages;
     if (SearchRec.Attr and faDirectory) <> faDirectory then
       List.Add(StartDir + SearchRec.Name)
     else if (SearchRec.Name <> '..') and (SearchRec.Name <> '.')then
     begin
       List.Add(StartDir + SearchRec.Name + '\');
     ScanDir(StartDir + SearchRec.Name + '\', Mask, List);
 end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;

procedure TMainForm.Openfolder1Click(Sender: TObject);
var i,filename:integer;
begin
if PathDialog1.Execute then
   ScanDir(PathDialog1.Path, '*mp3', PlayList_editor.ListBox1.Items);
end;

Как сделать чтобы додавлялись вложенные папки?  


unknown   (2006-08-23 16:22:00) [1]


> GeLLeR ©   (23.08.06 15:57) [4]

procedure TForm1.Button1Click(Sender: TObject);
var
 Str:TStrings;
begin
 Str:=TStringList.Create;
 try
   GetAllFiles('G:\Music\*mp3', Str);
   Memo1.Lines.Text:=Str.Text;
 finally
   Str.Free;
 end;
end;


GeLLeR   (2006-08-23 15:57:00) [2]

Только хотелось бы ещё код с использованием этой прцедурки ато нефурычит...


GeLLeR   (2006-08-23 15:46:00) [3]

Пасибачки))))))0


unknown   (2006-08-23 15:42:00) [4]


> GeLLeR ©   (23.08.06 15:26)


procedure GetAllFiles(mask: string;var Box:TStrings);
var
 search: TSearchRec;
 directory: string;
begin
 if Box=nil then
   exit;
 directory := ExtractFilePath(mask);
 // find all files
 if FindFirst(mask, $23, search) = 0 then
 begin
   repeat
     // add the files to the listbox
     Box.Add(directory + search.Name);
   until FindNext(search) <> 0;
 end;
 // Subdirectories/ Unterverzeichnisse
 if FindFirst(directory + '*.*', faDirectory, search) = 0 then
 begin
   repeat
     if ((search.Attr and faDirectory) = faDirectory) and (search.Name[1] <> '.') then
       GetAllFiles(directory + search.Name + '\' + ExtractFileName(mask),Box);
   until FindNext(search) <> 0;
   SysUtils.FindClose(search);
 end;
end;


GeLLeR   (2006-08-23 15:28:00) [5]

Примечание. Далее в процедуре procedure TMainForm.Openfolder1Click(Sender: TObject); добавляются др. форматы, считается время и тд и тп


Наверх

Титульная страница Поиск, карта сайта Написать письмо