Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

Странно работает FindFirst   Найти похожие ветки 

 
Miron   (2004-09-30 02:04) [0]

Попытка получить список папок в заданном каталоге. После выполнения щелчка на кнопке

procedure TForm1.Button1Click(Sender: TObject);

var
   SL: TStringList;

   procedure ScanDirectory(Dir: String);
   var
       sr: TSearchRec;
   begin
       if FindFirst(Dir + "*.*", faDirectory, sr) = 0
       then begin
           try
               repeat
                   SL.Add(sr.Name);
               until FindNext(sr) = 0
           finally
               FindClose(sr);
           end;
       end;
   end;
   //=============================================================
begin
       SL := TStringList.Create;
       try
           ScanDirectory("C:\Program Files\");
       finally
           try
               SL.SaveToFile(ExtractFilePath(Application.ExeName) + "Test.txt");
           finally
               SL.Free;
           end;
       end;
end;


в файл добавляется только один символ "."
Что-то не так делаю?


 
GuAV ©   (2004-09-30 02:18) [1]


> until FindNext(sr) = 0

until FindNext(sr) <> 0


 
Miron   (2004-09-30 07:05) [2]


> GuAV ©  
Нда... Спасибо.Дальше вроде разобрался.
Но почему при явном указывании faDirectory в список попадают и все файлы каталога. Приходится делать проверку:

if (sr.Attr and faDirectory) = fadirectory
                   then SL.Add(sr.Name);


 
Anatoly Podgoretsky ©   (2004-09-30 07:50) [3]

Miron   (30.09.04 07:05) [2]
Потому что так устроено АПИ ОС


 
Мирон ©   (2004-09-30 08:06) [4]


> Anatoly Podgoretsky ©   (30.09.04 07:50) [3]

Это и так понятно, иначе результат был бы другой. :)
Я имел в виду причины, почему АПИ ОС в этой части устроили имено так.
А в принципе, не суть важно - сделаю проверку, не надорвусь...



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

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

Наверх




Память: 0.47 MB
Время: 0.033 c
6-1091704405
dimm22
2004-08-05 15:13
2004.10.17
Как программно изменить свойства подключения IExplorera?


4-1094827179
Иван_
2004-09-10 18:39
2004.10.17
Что такое IRQ прерывания?


3-1095651463
korvin
2004-09-20 07:37
2004.10.17
Поиск без учёта регистра


11-1081438953
Delphi5.01
2004-04-08 19:42
2004.10.17
Mojet oshibka? Result:=PCheckMesh(NewPanel(AParent, EdgeStyle));


4-1094546471
MetalFan
2004-09-07 12:41
2004.10.17
заводской номер CD/Floppy