Главная страница
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.048 c
1-1088057321
www.shegeda.by.ru
2004-06-24 10:08
2004.07.11
Утечка GDI ресурсов при рисовании по TListView.Canvas


1-1088233323
dreams
2004-06-26 11:02
2004.07.11
Проблема с MDI окнами


1-1087981658
Dima
2004-06-23 13:07
2004.07.11
TOpenPictureDialog


1-1087853757
Алексей
2004-06-22 01:35
2004.07.11
Подскажите, плиз как искать папки


1-1088150523
Salik
2004-06-25 12:02
2004.07.11
Chart, синтаксис и т.д