![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FindFirst файлы и папки [D7, WinXP]
Redlord © (2004-12-24 21:57:00)всем привет
народ можноли настроить функцию FindFirst чтоб она выдавала
папки И файлы определенного типа, например EXE .
используя ниже приведенный пример я получаю тока файлы
if FindFirst(s+'*.exe', faDirectory, sr) = 0 then
...
Anatoly Podgoretsky (2004-12-25 11:48:00) [1]http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N158
Sun bittern (2004-12-25 10:19:00) [2]begin...end © (25.12.04 10:17) [13]
Каюсь, грешен :)
begin...end (2004-12-25 10:17:00) [3]> [12] Sun bittern © (25.12.04 10:12)
+ FindClose.
Sun bittern (2004-12-25 10:12:00) [4]Файлы и папки по маске
Procedure SearchDir(Path, Mask: String; SearchSubDir:Boolean; SearchList: TStrings);
var
FSearchRec, DSearchRec: TSearchRec;
FindResult: Integer;
function IsDirNotation(ADirName: String): Boolean;
begin
Result := (ADirName = '.') or (ADirName = '..');
end;
Begin
FindResult := FindFirst(Path + Mask, faAnyFile + faDirectory, FSearchRec);
while FindResult = 0 do
begin
SearchList.Add(Path + FSearchRec.Name);
FindResult := FindNext(FSearchRec);
end;
if SearchSubDir then
FindResult := FindFirst(Path + '*.*', faDirectory, DSearchRec);
while FindResult = 0 do
begin
if ((DSearchRec.Attr and faDirectory) = faDirectory) and not
IsDirNotation(DSearchRec.Name) then
SearchList.Add(Path + DSearchRec.Name);
FindResult := FindNext(DSearchRec);
end;
end;
Fay (2004-12-25 04:05:00) [5]2 All
if FindFirst(s+'*.exe', faDirectory, sr) = 0 then
Кому-нибудь ещё удалось так найти только папки?
SergP (2004-12-25 02:07:00) [6]
> Redlord (24.12.04 21:57)
> всем привет
> народ можноли настроить функцию FindFirst чтоб она выдавала
> папки И файлы определенного типа, например EXE .
Ищи тогда 2 раза отдельно. Один раз - папки, дркгой раз экзешники.
olookin (2004-12-25 02:04:00) [7][8] redlord (25.12.04 01:56)
У меня директории показывались в поиске...
redlord (2004-12-25 01:56:00) [8]как ето через if зделать я знаю а можноли в атрибутах FindFirst ?
а строка
FindFirst(Path + '\*.*', faAnyFile + faDirectory, SearchRec);
покажет тока файлы !!
olookin (2004-12-24 23:13:00) [9][6] Sun bittern © (24.12.04 22:38)
Я ничего не указывал... Директории и так находятся... По моему...
Sun bittern (2004-12-24 22:38:00) [10]olookin © (24.12.04 22:26) [5]
Указать в атрибутах файла
FindFirst(Path + '\*.*', faAnyFile + faDirectory, SearchRec);
olookin (2004-12-24 22:26:00) [11][4] Sun bittern © (24.12.04 22:25)
?
Sun bittern (2004-12-24 22:25:00) [12]faDirectory?
olookin (2004-12-24 22:13:00) [13]В этом коде жирным выделены папки. Так по крайней мере я думаю...
procedure TForm1.Scan(Path: Ansistring);
var SearchRec: TSearchRec;
s: string;
r,a: Ansistring;
begin
FindFirst(Path+'\*.*',faAnyFile,SearchRec);
while FindNext(SearchRec)=0 do begin
s:='*'+LowerCase(ExtractFileExt(Path+'\'+SearchRec.Name));
if ( s<>'*') and ( s<>'*.') and (s='*.mp3') then begin
Inc(xx);
end;
if (SearchRec.Attr and faDirectory=faDirectory) and
(SearchRec.Name[1]<>'.') then Scan(Path+'\'+SearchRec.Name); end;
FindClose(SearchRec);
end;
Redlord (2004-12-24 22:11:00) [14]две звезды ето все файлы а надо тока EXE
olookin (2004-12-24 22:08:00) [15]Папки кажется маркируются как '*.*'. Можно в общем...