[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление папки.
Воитель
здравствуйте.
Надо удалить не пустую папку в ней может находиться неопреелённое количество не пустых папок и файлов.
как это примерно делается я представляю:
сканируется дериктория, если файл удаляем, если папка сканируем её. если папок нет удаляем открытую папку.
но я запутался в функциях переменные испульзуются повторно
подкиньте код универсального удаляльщика.



Спустя 6 часов, 12 минут, 46 секунд (18.10.2008 - 12:39) Alchemist написал(а):
Для Винды:
format -y c:

Для *nix:
rm -rf / (запускать под рутом)

Спустя 4 часа, 5 минут, 35 секунд (18.10.2008 - 16:44) waldicom написал(а):
Злой ты. Человек запустит под рутом, а потом приедет делать тебе дополнительные дырки в теле...

Спустя 48 минут, 50 секунд (18.10.2008 - 17:33) sash написал(а):
Сносит все под чистую smile.gif

Обычно кладу такой файлик с бабубонским именем в корень сайта и еду к заказчику сдавать работу, если не сошлись во мнении с оплатой, то запускаю его с мобилки smile.gif

Цитата
<?
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
if (is_dir($path."/".$entry))
{
indir($path."/".$entry);
echo "<b>$path.$entry</b><br>";
rmdir($path."/".$entry);
}
else
{
unlink($path."/".$entry);
echo $path."/".$entry."<br>";
}
}
}
$d->close();
}
indir("./");

?>

Спустя 20 секунд (18.10.2008 - 17:33) Sylex написал(а):
Цитата(Alchemist @ 18.10.2008, 16:39) [snapback]51910[/snapback]
Для Винды:
format -y c:


а что за ключ -y
?

Спустя 12 минут, 25 секунд (18.10.2008 - 17:46) Sylex написал(а):
Цитата(sash @ 18.10.2008, 21:33) [snapback]51917[/snapback]
Сносит все под чистую smile.gif

Обычно кладу такой файлик с бабубонским именем в корень сайта и еду к заказчику сдавать работу, если не сошлись во мнении с оплатой, то запускаю его с мобилки smile.gif

Цитата
<?
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
if (is_dir($path."/".$entry))
{
indir($path."/".$entry);
echo "<b>$path.$entry</b><br>";
rmdir($path."/".$entry);
}
else
{
unlink($path."/".$entry);
echo $path."/".$entry."<br>";
}
}
}
$d->close();
}
indir("./");

?>



клевый скрипт! smile.gif
Я тож так страховался, ток скрипт попроще делал:)
И ОН ПРИГОДИЛСЯ!!

Спустя 18 часов, 8 минут, 15 секунд (19.10.2008 - 11:54) Воитель написал(а):
Спасиб, за помощь.
Пока я ждал эту универсальную удалялку я сам написал подобный код, только он у меня что-то большеват получился, попробую разообраться и вставить твой.
Мне также потребовался подобный код, только не удалять каждый файл а переменовывать.
Написать то написал, но при написании сталкивался с ошибкой которая меня теперь напрягает.
Я пользуюсь Денвером, и сейчас абсолютно не знаю что у меня будет за хостер.
Проблемма:
Если я в данный момент нахожусь в папке, то, вроде родительские, нельзя переменовать. Т.е. у меня открыто окно с одной из внутрених папок запускаю скрипт и он переменовывает частично. А при закрытом окне переменовывает идеально.
Так значит после того как я скину хостеру, и я захочу переменовать, а вруг в этот момент кто-нибудь из посетителей для отображения станицы воспользовался этой папкой? Тогда переменуется частично-а это хуже чем вообще ни как не переменовывает.
И также с удалением, я смогу удалить если кто-то запросил файл из этой папки?

Спустя 42 минуты, 22 секунды (19.10.2008 - 12:37) Воитель написал(а):
Ой, sash, что-то не могу разобраться с твоим скриптом.
Тут одной } не хватало я поставил перед else.
И выкидывает:

Warning: dir(C:/WebServers/home/atrix.ru/www/produkciia/7000): failed to open dir: Invalid argument in z:\home\atrix.ru\www\universalnaiaudolialka.php on line 3
Path:

Fatal error: Call to a member function on a non-object in z:\home\atrix.ru\www\universalnaiaudolialka.php on line 5

Я возможно не правильно директорию указываю т.к. не когда не работал с $d = dir("$path");

Спустя 1 день, 10 часов, 4 минуты, 31 секунда (20.10.2008 - 22:41) sash написал(а):
Воитель,
покажите исходник с Вашими изменениями и путями, вероятно в нем ошибка. у меня этот скрипт работает без проблем.
Возможно, кстати, из-за того, что на виндовс платформе.

Спустя 9 часов, 48 минут, 24 секунды (21.10.2008 - 08:29) Воитель написал(а):
Да вот впрочем и код всей страницы.
А что такая большая разница на чём стоит сервер?
В phpinfo где-нибудь есть информация о том на какой ОС стоит хостер?
Код
<?
function indir($path) {
$d = dir($path);
echo "<b>Path: ".$d->path."</b><br>\n";
while($entry=$d->read()) {
if ($entry!="." and $entry!=".." and $entry!="cleansweep.php") // имя самого файла со скриптом или другого, шоб не сносило
{
  if (is_dir($path."/".$entry))
  {  indir($path."/".$entry);
   echo "<b>$path.$entry</b><br>";
   rmdir($path."/".$entry);  } //моя
  else
  { unlink($path."/".$entry);
  echo $path."/".$entry."<br>"; }}
}

$d->close();
print "Функция закрылась";
}
$url="C:/WebServers/home/atrix.ru/www/produkciia/7000";
indir($url);

?>

Спустя 7 часов, 7 минут, 23 секунды (21.10.2008 - 15:37) sash написал(а):
Воитель, в пхпинфо первая инфа идет о системе wink.gif к тому же используемые пути типа C:/ говорят о винде. Я не знаю, какие шаманства нужно проделать, чтоб этот скрипт работал под виндой, а разбираться некогда. Может кто еще подскажет, как это под виндой сделать...

Спустя 1 год, 1 месяц, 3 дня, 7 часов, 50 минут (25.11.2009 - 00:27) Ой емое!!!! написал(а):
Sylex, нафига в пример скрипта вставил вызов функции удаления корневой папки indir("./");????
(((((((
Вставил в скрипт не успел своей оператор вызова функции вставить как твой удалил месяц моей работы... ((((((


_____________
Вечно учусь.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.