Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

Аналог функции Add Folder из WinAmp a   Найти похожие ветки 

 
Paladin   (2004-07-09 20:01) [0]

Мне нужно, чтобы следующая процедура добавляла в listview все пути к файлам с расширением mask из startdir и (подкаталогов,но сами подкаталоги не добавляла)
Как в WinAmp - Add Folder, а что изменить я не догадался, подскажите, пожалуйста.
procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
var
 SearchRec : TSearchRec;
begin  
 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;


 
Mim1 ©   (2004-07-09 20:28) [1]

Вам надо искать по маске *.* и если найденый результат каталог то запускайте эту же функцию (рекурсия) с новыми параметрами, если же это не каталог то проверйте совподает ли имя файла наденому результату при помощи eqalmask ксли да то добавляйте в список.


 
Paladin   (2004-07-09 21:19) [2]

Неее, все должно быть проще... Хотя потом, если ничего не найдется - попробую.


 
Mim1 ©   (2004-07-10 13:32) [3]

Ну ну :)

program test;
{$APPTYPE CONSOLE}
uses sysutils, Masks;

procedure Q(startdir:string; mask:string);
var
SearchRec : TSearchRec;
begin
if FindFirst(StartDir+"\*.*", faAnyFile, SearchRec) = 0 then
begin
  repeat
    if (SearchRec.Attr and faDirectory) = faDirectory then
      begin
        if (SearchRec.Name <> "..") and (SearchRec.Name <> ".") then
          q(startdir+"\"+SearchRec.Name,mask);
      end
    else
      if MatchesMask(SearchRec.Name,mask) then
        writeln(StartDir +"\"+ SearchRec.Name);
  until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
end;
end;
begin
 q("d:\mp3","*.mp3");
end.


PS LMD



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.033 c
1-1089695944
bobj
2004-07-13 09:19
2004.07.25
Обработка TreeView


1-1089698906
NJoe
2004-07-13 10:08
2004.07.25
Определение текстовых файлов


4-1087126783
SergeyM
2004-06-13 15:39
2004.07.25
Раскладка клавиатуры


1-1089382208
MadGhost
2004-07-09 18:10
2004.07.25
Как сделать PREVIEW у TPrinter???


14-1088711530
Nikolay M.
2004-07-01 23:52
2004.07.25
Кто на диалапе или gprs?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский