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

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

список файлов [D7, WinXP]


димка ©   (2004-02-01 14:05:00) 

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


Slym   (2004-03-03 04:42:00) [1]

procedure EnumFiles(Where, Mask: string;
 var FileList: TStrings);
var
 FD:TWin32FindData;
 hSearch:DWORD;
begin
 FileList.Clear;
 Where:=IncludeTrailingPathDelimiter(Where);
 hSearch:=Windows.FindFirstFile(PChar(Where+Mask),FD);
 if hSearch=INVALID_HANDLE_VALUE then exit;
 repeat
   if FD.dwFileAttributes<>FILE_ATTRIBUTE_DIRECTORY then
     FileList.Add(Where+FD.cFileName);
 until not FindNextFile(hSearch,FD);
 Windows.FindClose(hSearch);
end;

Files:=TStringList.Create;
EnumFiles(c:\windows,'*.exe',Files);


Dimka Maslov   (2004-03-02 17:07:00) [2]

Этот вопрос настолько же провокационен, как и вопрос про то , где часики. Отвечать на него считается неприличным.


Javlon   (2004-03-02 13:39:00) [3]

Ни очен


Maxud   (2004-02-28 13:14:00) [4]

SendMessage(ListBox1.Handle,LB_DIR,DDL_DIRECTORY or DDL_ARCHIVE or DDL_HIDDEN or DDL_READONLY or DDL_SYSTEM or DDL_READWRITE,Integer(PChar('C:\*.*')));


Javlon   (2004-02-28 09:19:00) [5]

procedure search(dir:string);
var
sr:tsearchrec;
f:textfile;
p:pchar;
begin
sr.Name:='';
findfirst(dir+'\*.*',$3F,sr);
repeat
 if (sr.name<>'.')and(sr.name<>'..')and(sr.attr=faDirectory)andthen
 begin
  search(UPPERCASE(dir+'\'+sr.name));
 end;
 if (sr.name<>'.')and(sr.name<>'..')and(sr.name<>'')and(sr.attr<>faDirectory) then
  begin
   form1.memo1.lines.add(sr.name);  
  end;
until findnext(sr)<>0;
end;


hyper_omsk   (2004-02-02 05:53:00) [6]


   { Private declarations }
 public
  procedure FindFile(Dir:String;mask:string);

procedure tform1.FindFile(Dir:String;mask:string);
Var SR:TSearchRec;
   FindRes:Integer;
begin
FindRes:=FindFirst(Dir+'*.*',faAnyFile,SR);
While FindRes=0 do
  begin
     if ((SR.Attr and faDirectory)=faDirectory) and
     ((SR.Name='.')or(SR.Name='..')) then
        begin
           FindRes:=FindNext(SR);
           Continue;
        end;
     if form3.CheckBox1.Checked=true then
     if ((SR.Attr and faDirectory)=faDirectory) then // если найден каталог, то {здесь ищи имя каталога}
        begin
           FindFile(Dir+SR.Name+'\',mask); // входим в процедуру поиска с параметрами текущего каталога + каталог, что мы нашли
           FindRes:=FindNext(SR); // после осмотра вложенного каталога мы продолжаем поиск в этом каталоге
           Continue; // продолжить цикл
        end;
     setcurrentdir(dir);
//ищем файлы
     if '.*'=ansilowercase(extractfileext(sr.name)) then BEGIN
     ListBox1.Items.Add(expandfilename(SR.Name));
     application.ProcessMessages;
     end;
     FindRes:=FindNext(SR);
  end;
FindClose(SR);
end;


}{enon   (2004-02-01 14:18:00) [7]

Поискать его в FAQ :)
Смотри хелп или FAQ по FindFirst, FindNext, FindClose.


Наверх

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