![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление без рекурсии [XP]
akosh12345 © (2010-06-08 01:20:00)Собственно говоря в теме состоит и вопрос. Как удалит каталог, и подкаталогами без рекурсии, то есть без вызова самого себя?
И. Павел (2010-06-08 20:32:00) [1]> Так и не понял, как этот код поможет в решении проблемы?
Автор вопроса писал, что ему нужно определить - какие папки нужно удалять сначала, а какие - позже.
Так как путь к подпапке включает в себя путь к родительской папке, то после сортировки в начале будут папки, а затем - подпапки:
Было:
C:\1\2
C:\1\2\3
C:\1
После сортировки станет:
C:\1
C:\1\2
C:\1\2\3
Это если список неупорядочен изначально.
Плохиш (2010-06-08 20:16:00) [2]
> И. Павел © (08.06.10 19:52) [12]
>
>
> Проблема в удалении папок. Ведь когда в папке находится
> подпаки - не удалиться папка
>
> Раз уж вы используете ListBox, то, наверное, можно так:
> L istBox.Sorted := true;
> for i := ListBox1.Count-1 downto 0 do
> //удаляем ListBox1.Items[i]
>
Так и не понял, как этот код поможет в решении проблемы?
И. Павел (2010-06-08 19:52:00) [3]
Проблема в удалении папок. Ведь когда в папке находится подпаки - не удалиться папка
Раз уж вы используете ListBox, то, наверное, можно так:
ListBox.Sorted := true;
for i := ListBox1.Count-1 downto 0 do
//удаляем ListBox1.Items[i]
Плохиш (2010-06-08 19:40:00) [4]
> Как мне сделать так, что бы удалять снизу верх, то есть
> с подкаталогов.
Прочитать все файлы и подкатологи из всех подкаталогов и записать их полные имена в ваш листбокс в требуемой последовательности, в цикле пройтись по листбоксу у удалить файлы/подкаталоги.
akosh12345 (2010-06-08 18:59:00) [5]ВОт смотри. Я создал список файлов TListBox. Храню там список файлов и каталгов. В первой цикле удаляю все файлы. во Втором удаляю папки. Проблема в удалении папок. Ведь когда в папке находится подпаки - не удалиться папка
. Как мне сделать так, что бы удалять снизу верх, то есть с подкаталогов.
akosh12345 (2010-06-08 18:47:00) [6]это же форум программистов. Что вы тут пишите всякую чушь!!! Серьезнее ребята
абизяна (2010-06-08 12:33:00) [7]
> Anatoly Podgoretsky © (08.06.10 12:20) [7]
Это не критика:-) Просто твои слова несколько похожи на известый афоризм.
Anatoly Podgoretsky (2010-06-08 12:20:00) [8]> абизяна (08.06.2010 12:11:06) [6]
Ты кого критикуешь?
абизяна (2010-06-08 12:11:00) [9]
> Anatoly Podgoretsky © (08.06.10 09:43) [5]
> > akosh12345 (08.06.2010 01:31:01) [1]
>
> Избежать просто, достаточно не делать.
Хочешь избежать критики — ничего не делай, ничего не говори и будь никем.
(С) Элберд Хаббард.
Anatoly Podgoretsky (2010-06-08 09:43:00) [10]> akosh12345 (08.06.2010 01:31:01) [1]
Избежать просто, достаточно не делать.
MBo (2010-06-08 08:56:00) [11]SHFileOperation попробуй использовать
oldman (2010-06-08 07:42:00) [12]Создай список файлов и удаляй по очереди. Без рекурсии.
Хочешь весь каталог, хочешь избегая этого.
Германн (2010-06-08 01:45:00) [13]
> akosh12345 © (08.06.10 01:31) [1]
>
> Поясняю.
Сей бред ничего не поясняет. Имхо.
Поспи и возвращайся утром.
Утро вечера мудренее!
akosh12345 (2010-06-08 01:31:00) [14]Поясняю. Мне нужно показывать пользователю как удаляется все файлы в подкаталогах и в самом каталоге, то есть использую прогрессбар. Все эти действия создаю в потоке. То есть максимальное количество прогрессбара = количество файлов и каталогах в удаляемом каталоге. Мне нжуно что когда я создал поток удалилась вся папка полность. Подскажите как это сделать? или как можно того избежать??