Forum Webscript.Ru

Программирование => Perl => Тема начата: Дерево познания от 01 Октября 2003, 00:47:41

Название: Чем удалить непустой каталог?
Отправлено: Дерево познания от 01 Октября 2003, 00:47:41
Модуль подскажите? Чтобы каталог удалить.

use File::Remove qw(remove);

remove "название каталога";

не работает %(
Название: Чем удалить непустой каталог?
Отправлено: ondr от 01 Октября 2003, 10:21:29
use File::Path;

rmtree("path/to/dir");

Но в данной функции может сработать команда die.
Чтобы это блокировать используй:

eval { rmtree("path/to/dir") } && print "Каталог ликвидирован\\n";
Название: Чем удалить непустой каталог?
Отправлено: vladsu от 01 Октября 2003, 11:30:02
Как вариант.

Предварительно перейдя в диру

unlink $_ while (<*>);

или что-нибудь такое

@files = grep {-f "$dir_name/$_" } readdir(DIR);
unlink $_ foreach (@files);

ЗЫ Только нужно подумать о сабдирах!
Название: Чем удалить непустой каталог?
Отправлено: NeoNox от 01 Октября 2003, 11:36:43
ondr
твой кусок кода с eval работает с точностью до наоборот.
А точнее сообщение неверное
Название: Чем удалить непустой каталог?
Отправлено: ondr от 01 Октября 2003, 12:04:38
[OFF]Факир был пьян и фокус не удался.[/OFF]

NeoNox
Исправил. Исправление пометил красным.