![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Список вложеных дерикторий [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;