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

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

Удаление без рекурсии [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]

Поясняю. Мне нужно показывать пользователю как удаляется все файлы в подкаталогах и в самом каталоге, то есть использую прогрессбар. Все эти действия создаю в потоке. То есть максимальное количество прогрессбара = количество файлов и каталогах в удаляемом каталоге. Мне нжуно что когда я создал поток удалилась вся папка полность. Подскажите как это сделать? или как можно того избежать??


Наверх

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