Вот нашел пример, но при выборе локального диска, выдает в листбоксе с двумя флэшами, например:
D:\\Files\Music, а если просто папку с подпапками, то выводит нормально, подскажите в чем проблема?
Код:
procedure GetAllFiles(const Path: string; ListBox: TListBox );
var
sRec: TSearchRec;
isFound: Boolean;
begin
isFound := FindFirst(Path + '\*.*', faAnyFile, sRec) = 0;
while isFound do
begin
if (sRec.Name <> '.') and (sRec.Name <> '..') then
begin
if (sRec.Attr and faDirectory) = faDirectory then
GetAllFiles(Path + '\' + sRec.Name, ListBox);
if Pos('.mp3', Copy(sRec.Name, Length(sRec.Name)-3, 4)) = 1 then
ListBox.Items.Add(Path + '\' + sRec.Name);
if Pos('.AAC', Copy(sRec.Name, Length(sRec.Name)-3, 4)) = 1 then
ListBox.Items.Add(Path + '\' + sRec.Name);
end;
Application.ProcessMessages;
isFound := FindNext(sRec) = 0;
end;
FindClose(sRec);
end;