![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
фаилы дириктории. [D7, Win95/98, WinME, Win2k, WinXP]
Anchar2004 © (2005-03-02 11:49:00)Господа, не подскажите как зная путь к какой-либо дириктории
получить список фаилов, хранящихся в ней? за ранее спасибо
begin...end (2005-03-02 15:48:00) [1]> Вариант © (02.03.05 15:44) [7]
Представьте, что в процессе поиска попалась папка с атрибутом "Скрытый". Её атрибуты будут такими: faDirectory or faHidden. Т.к. (faDirectory or faHidden) <> faDirectory, то эта папка будет занесена в список. А ведь в списке, по идее, должны быть только файлы.
Вариант (2005-03-02 15:44:00) [2]>Anatoly Podgoretsky
Всё в рабочем состоянии. В одном из моих проектов я использовал такую конструкцию. Единственное в примере на событие кнопки я посадил функцию ListFileDir, а нужно естественно FileList. Но я надеюсь не из-за этого у вас ничего не работает.(прежде чем копировать код в IDE его нужно просмотреть и понять):)
>Poirot
Зачем? мы проверяем значения SR.Attr. В данном случае если SR.attr не папка(faDirectory), ведь нам нужно вывести список только файлов, то ... Так что ничего спорного не вижу. Проверьте на практике
Anatoly Podgoretsky (2005-03-02 14:14:00) [3]Poirot © (02.03.05 13:06) [4]
Какое спорно, просто не работающее, кроме отдельных случаев, если повезет.
kukuikar (2005-03-02 14:08:00) [4]а использовать TFileListBox?
Poirot (2005-03-02 13:06:00) [5]>> if (SR.Attr <> faDirectory) then
Спорно!
Лучше...
SR.Attr and faDirectory = 0
Вариант (2005-03-02 13:02:00) [6]Пользуйся:
procedure FileList(Path: string; FileList: TStrings);
var
SR: TSearchRec;
begin
//Поиск файлов
if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
begin
repeat
//Если найденный объект не папка, то
if (SR.Attr <> faDirectory) then
begin
//...заносим его имя в FileList
FileList.Add(SR.Name);
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
end;
А использовать можно так:
procedure TForm1.Button1Click(Sender: TObject);
begin
ListFileDir('C:\WINDOWS\', ListBox1.Items);
end;
Smithson (2005-03-02 12:09:00) [7]FindFirts, FindNext +F1
Smithson (2005-03-02 12:09:00) [8]Виноват, FindFirst