Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.11;
Скачать: 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 вся ветка

Текущий архив: 2004.07.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
14-1087494698
Подкрадуха
2004-06-17 21:51
2004.07.11
SDK для SkyStar1


1-1088151444
r9000
2004-06-25 12:17
2004.07.11
Невидимость кнопок "Назад","Вперед" в IE.


8-1082609276
hellfire
2004-04-22 08:47
2004.07.11
TAnimate и AVI-файл, вкомпиленный в ресурсы внешней DLL


3-1087042017
Anna
2004-06-12 16:06
2004.07.11
Хранимые процедуры


3-1087358807
Tornado
2004-06-16 08:06
2004.07.11
Как отменить редактирование?