![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Странно работает FindFirst [D7, WinXP]
Miron © (2004-09-30 02:04:00)Попытка получить список папок в заданном каталоге. После выполнения щелчка на кнопке
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;
в файл добавляется только один символ "."
Что-то не так делаю?
Мирон (2004-09-30 08:06:00) [1]
> Anatoly Podgoretsky © (30.09.04 07:50) [3]
Это и так понятно, иначе результат был бы другой. :)
Я имел в виду причины, почему АПИ ОС в этой части устроили имено так.
А в принципе, не суть важно - сделаю проверку, не надорвусь...
Anatoly Podgoretsky (2004-09-30 07:50:00) [2]Miron (30.09.04 07:05) [2]
Потому что так устроено АПИ ОС
Miron (2004-09-30 07:05:00) [3]
> GuAV ©
Нда... Спасибо.Дальше вроде разобрался.
Но почему при явном указывании faDirectory в список попадают и все файлы каталога. Приходится делать проверку:
if (sr.Attr and faDirectory) = fadirectory
then SL.Add(sr.Name);
GuAV (2004-09-30 02:18:00) [4]
> until FindNext(sr) = 0
until FindNext(sr) <> 0