Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

фаилы дириктории. [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо