Вниз
Скачать: CL | DM;

FindFirst файлы и папки   Найти похожие ветки 

← →
Redlord   (2004-12-24 21:57) [0]

всем привет
народ можноли настроить функцию FindFirst чтоб она выдавала
папки И файлы определенного типа, например EXE .
используя ниже приведенный пример я получаю тока файлы

if FindFirst(s+"*.exe", faDirectory, sr) = 0 then
...


← →
olookin ©   (2004-12-24 22:08) [1]

Папки кажется маркируются как "*.*". Можно в общем...


← →
Redlord   (2004-12-24 22:11) [2]

две звезды ето все файлы а надо тока EXE


← →
olookin ©   (2004-12-24 22:13) [3]

В этом коде жирным выделены папки. Так по крайней мере я думаю...

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;


← →
Sun bittern ©   (2004-12-24 22:25) [4]

faDirectory?


← →
olookin ©   (2004-12-24 22:26) [5]

[4] Sun bittern ©   (24.12.04 22:25)

?


← →
Sun bittern ©   (2004-12-24 22:38) [6]

olookin ©   (24.12.04 22:26) [5]

Указать в атрибутах файла
FindFirst(Path + "\*.*", faAnyFile + faDirectory, SearchRec);


← →
olookin ©   (2004-12-24 23:13) [7]

[6] Sun bittern ©   (24.12.04 22:38)

Я ничего не указывал... Директории и так находятся... По моему...


← →
redlord   (2004-12-25 01:56) [8]

как ето через if зделать я знаю а можноли в атрибутах FindFirst ?
а строка
FindFirst(Path + "\*.*", faAnyFile + faDirectory, SearchRec);
покажет тока файлы !!


← →
olookin ©   (2004-12-25 02:04) [9]

[8] redlord   (25.12.04 01:56)

У меня директории показывались в поиске...


← →
SergP ©   (2004-12-25 02:07) [10]


>  Redlord   (24.12.04 21:57)
> всем привет
> народ можноли настроить функцию FindFirst чтоб она выдавала
> папки И файлы определенного типа, например EXE .


Ищи тогда 2 раза отдельно. Один раз  - папки, дркгой раз экзешники.


← →
Fay ©   (2004-12-25 04:05) [11]

2 All
if FindFirst(s+"*.exe", faDirectory, sr) = 0 then
Кому-нибудь ещё удалось так найти только папки?


← →
Sun bittern ©   (2004-12-25 10:12) [12]

Файлы и папки по маске

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;


← →
begin...end ©   (2004-12-25 10:17) [13]

> [12] Sun bittern ©   (25.12.04 10:12)

+ FindClose.


← →
Sun bittern ©   (2004-12-25 10:19) [14]

begin...end ©   (25.12.04 10:17) [13]

Каюсь, грешен :)


← →
Anatoly Podgoretsky ©   (2004-12-25 11:48) [15]

http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N158



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.023 c
1-1104070030
rolex
2004-12-26 17:07
2005.01.16
Помогите! TListView какой-то медленный! Нужно ООчень срочно.


14-1104120730
Чеширский_Кот
2004-12-27 07:12
2005.01.16
"И скучно, и грустно, и некому руку подать..."


4-1101492834
VDevel
2004-11-26 21:13
2005.01.16
Адрес DNS


1-1103896379
denis24
2004-12-24 16:52
2005.01.16
checkbox в гриде


4-1101666469
MAINUSER
2004-11-28 21:27
2005.01.16
FindFirstChangeNotification




   Наверх