![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
список файлов [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.