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

Подскажите, плиз как искать папки   Найти похожие ветки 

← →
Алексей   (2004-06-22 01:35) [0]

Когда я использую FindFirst с атрибутом faDirectory, то находятся не только директории, но и файлы, а файлы мне не нужны. Как это можно сделать


← →
Игорь   (2004-06-22 07:26) [1]

Нужно делать проверку. Например

var
SR:TSearchRec;

begin
if FindFirst("c*.*",faDirectory,SR) = 0 then
repeat
if Sr.Attr = faDirectory then чего-то делаем...
until FindNext(SR) <> 0;
FindClose(SR);
end;

Без этого не обойтись.


← →
Игорь   (2004-06-22 07:29) [2]

Я сам недавно с такой же проблемой столкнулся


← →
MBo ©   (2004-06-22 07:35) [3]

>if Sr.Attr = faDirectory
это некорректная проверка. см. FAQ по findfirst


← →
Игорь   (2004-06-22 07:40) [4]

ну можно так:
if (SR.Attr and faDirectory) = srAttr then ...


← →
Anatoly Podgoretsky ©   (2004-06-22 09:16) [5]

Игорь   (22.06.04 07:40) [4]
Точно такая же не корректная проверка. см. FAQ по findfirst


← →
TUser ©   (2004-06-22 09:37) [6]

Да вообще - проще из справки скопировать.


← →
TASADAR   (2004-06-23 09:03) [7]


function TForm1.FindFolders (Path: string): boolean;
var
 F: TSearchRec;
 Attr: Integer;
begin
 Result := false;
 Attr := faDirectory + faReadOnly + faHidden + faSysFile + faArchive;
 FindFirst(Path, Attr, F);

 if F.name <> "" then
 begin
   if (F.name <> "..") and (F.name <> ".") and ((F.Attr = 16) or (F.Attr = 17)
   or (F.Attr = 18) or (F.Attr = 48) or (F.Attr = 51) or (F.Attr = 19)
   or (F.Attr = 49) or (F.Attr = 50)) then
      begin
        // что-то делаю
        Result := True;
      end
   else
      begin
        while FindNext(F) = 0 do
          begin
            if (F.name <> "..") and (F.name <> ".") and ((F.Attr = 16) or (F.Attr = 17)
            or (F.Attr = 18) or (F.Attr = 48) or (F.Attr = 51) or (F.Attr = 19)
            or (F.Attr = 49) or (F.Attr = 50)) then
               begin
                 // что-то делаю
                 Inc(i1);
               end;
          end
      end;
 end;
 FindClose(F);
end;



← →
Anatoly Podgoretsky ©   (2004-06-23 11:35) [8]

Ужасы нашего городка.


← →
alex_shpak   (2004-06-23 13:48) [9]

По-моему, вместо (F.Attr =...)or(F.Attr=...)or ... нужно писать (F.Attr and faDirectory)<>0. Так сказано в help"е по TSearchRec и так проще.



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

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



Память: 0.47 MB
Время: 0.022 c
1-1088168029
oleg_
2004-06-25 16:53
2004.07.11
А можно ли opendialog превратить в createdialog


8-1082626570
Sergey__
2004-04-22 13:36
2004.07.11
Как сделать чтобы текст плавно передвигался по форме


14-1087984728
Adder
2004-06-23 13:58
2004.07.11
%))


11-1076007813
X_9
2004-02-05 22:03
2004.07.11
Проблемы с KOL и KOL - компонентами


6-1084387812
Cobalt
2004-05-12 22:50
2004.07.11
Indy TIdFTP - проблема с получением списка папок




   Наверх