Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.30;
Скачать: CL | DM;

Вниз

Рекурсивный обход папок,,, или не рекурсивный...   Найти похожие ветки 

 
Dust ©   (2006-04-14 11:56) [0]

Люди, поделитесь алгоритмом, голова не работает уже и времени нет. Нужно найти все файлы в папке и подпапках...


 
Anatoly Podgoretsky ©   (2006-04-14 12:14) [1]

Рекурсивный


 
Kolan ©   (2006-04-14 12:18) [2]

FindFirst итд. Полно в нете...


 
Dmitrij_K   (2006-04-14 12:19) [3]

Procedure ScanDir(Dir:string);
var SearchRec:TSearchRec;
begin
if Dir<>"" then if Dir[length(Dir)]<>"\" then Dir:=Dir+"\";  
if FindFirst(Dir+"*.*", faAnyFile, SearchRec)=0 then  
repeat  
if (SearchRec.name=".") or (SearchRec.name="..") then continue;  
if (SearchRec.Attr and faDirectory)<>0 then  
ScanDir(Dir+SearchRec.name) //we found Directory: "Dir+SearchRec.name"  
else  
Showmessage(Dir+SearchRec.name); //we found File: "Dir+SearchRec.name"  
until FindNext(SearchRec)<>0;  
FindClose(SearchRec);  
end;


------------------
www.DRKB.ru


 
jack128 ©   (2006-04-14 12:36) [4]

б-р-р-р..  try-finally чтоли поставили бы..

я таким шабломом пользуюсь:

type
 TIterateFileProc = procedure (const Filename: string;
   const FFD: TWin32FindData; var Continue: boolean) of object;

function IterateFiles(StartDir: string; FileMask: string;
 Callback: TIterateFileProc; Recurse: boolean = True): boolean;
var
 ffd: TWIN32FindData;
 ffh: THandle;
begin
 Assert(Assigned(Callback));
 if StartDir = "" then
   raise Exception.Create("Введите директорию");
 Result := True;
 if StartDir[Length(StartDir)] <> "\" then
   StartDir := StartDir + "\";
 ffh := FindFirstFile(PChar(StartDir + FileMask), ffd);
 if ffh <> INVALID_HANDLE_VALUE then
   try
     repeat
       if not ((string(ffd.cFileName) = ".") or (string(ffd.cFileName) = "..")) then
       begin
         Callback(StartDir + ffd.cFileName, ffd, Result);
         if not Result then Exit;
         if Recurse and ((ffd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) then
         begin
           Result := IterateFiles(StartDir + ffd.cFileName, FileMask, Callback);
           if not Result then Exit;
         end;
       end;
     until not FindNextFile(ffh, ffd);
   finally
     Windows.FindClose(ffh);
   end;
end;


 
Dust ©   (2006-04-14 12:43) [5]

угу, пасибо



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

Текущий архив: 2006.04.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
4-1139556912
drpass
2006-02-10 10:35
2006.04.30
Перехват LockWorkstation


3-1141681153
as77
2006-03-07 00:39
2006.04.30
FastReport и FibPlus


8-1133622740
roach
2005-12-03 18:12
2006.04.30
Нужно получить сигнал с line-in а звуковухи. Срочно!


15-1144570984
Ega23
2006-04-09 12:23
2006.04.30
С Днём рождения! 8 апреля


8-1133099582
Arazel
2005-11-27 16:53
2006.04.30
Конвертировать Mp3 в Wav (IMA ADPCM 16/4/7)?