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

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

Список вложеных дерикторий [D5, Win95/98, WinXP]


lexus3d ©   (2004-07-16 10:26:00) 

Здраствуйте мастера... вопрос возник... как мне получить список вложенных дерикторий (папок)... ну т.е. есть папка в ней ещё папки , так как мне узнать их имена?


Anatoly Podgoretsky   (2004-07-27 15:13:00) [1]

Можно оставить, все таки каталоги, но можно и не брать


Игорь Шевченко   (2004-07-27 14:52:00) [2]

И заодно не принимать во внимание те, у которых имя равно '.' или '..' :)


Anatoly Podgoretsky   (2004-07-27 13:57:00) [3]

Красивее и удобнее по задаче
if (sr.attr and faDirectory) = faDirectory 0 then ...
Ну не нужны файлы


aLexx   (2004-07-27 10:16:00) [4]

if (sr.attr and faDirectory) <> 0 then
 // нашлась папка
else ...  //а это нет


lexus3d   (2004-07-19 10:44:00) [5]

> Anatoly Podgoretsky  
не ну спасибо... то что пользоваться нужно Find'ом это я уже понял... как мне понять что в папке я нашёл именно вложенную папку а не файл ведь поиско по файлам происхожит sDir я получаю вот так:
ExtractFilePath(paramstr(0))+'skin\*.skn'
может вот так указывать 'Skin\'или как узнать то что я папку нашёл?


Anatoly Podgoretsky   (2004-07-19 09:00:00) [6]

FindNextFile


lexus3d   (2004-07-19 08:36:00) [7]

>SammIk
хорошо а как тогда узнать что  то что я нашёл я вляется директорией.... ведь в Find...передаётся что то следующее
FindFirst(sDir,faAnyFile,sr)... где sDir это путь к папке где вложенные папки лежат!!! как узнать то тогда что то что я нашёл действительно является директорией?


Cobalt   (2004-07-17 09:24:00) [8]

> clickmaker ©
FindClose не забываем!!!


SammIk   (2004-07-16 17:10:00) [9]

Рекурсивные функции.
Смысл:
Ищешь фаилы как посоветовали[2], если фаил директория
то вызываешь этуже ф-ю с новым путем.
Получится что обоидешь все директории.
И в факе был пример.


clickmaker   (2004-07-16 16:27:00) [10]

FindFirst()
FindNext()


T1000   (2004-07-16 16:11:00) [11]

Привет!

Вот один думаю не очень харошай приемер.
Ранше я етом ползувался.

Надо плзуватся библиотеке FileCtrl.

procedure TForm1.Extract(Dir: String);
var
  Dirs: TDirectoryListBox;
  i: integer;

begin
 if not DirectoryExists(Dir)then Exit;
 Dirs:= TDirectoryListBox.Create(Self);
 try
   Dirs.Visible:= False;
   Dirs.Parent := Self;
   Dirs.Directory:= Dir;
   if Dirs.ItemIndex+1 <= Dirs.Items.Count-1 then
    for i:= Dirs.ItemIndex+1 to Dirs.Items.Count-1 do
      ListBox1.Items.Add(Dirs.Items[i])
 finally
   Dirs.Free;
 end;
end;{Extract}

procedure TForm1.Button1Click(Sender: TObject);
begin
Extract('C:');
end;


Наверх

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