Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как удалить папку, в которой еще 18 млн. папок?
 
 автор: Дедова Шапка   (23.10.2010 в 19:11)   письмо автору
 
 

-Основная папка
--1
--2
--3
--4
--5
--6
--7
--8

В каждой из дочерних папок еще по 8 папок. В каждой из ближайших 8-ми еще 8...

Начинаю удалять основную папку, жду около часа, удаление завершается, но папки все-равно остаются нетронутыми.

  Ответить  
 
 автор: Trianon   (23.10.2010 в 19:35)   письмо автору
 
   для: Дедова Шапка   (23.10.2010 в 19:11)
 

скопировать из раздела всё остальное. Раздел форматнуть :)

upd. Что за ФС?

  Ответить  
 
 автор: Красная_шляпа   (23.10.2010 в 19:39)   письмо автору
 
   для: Дедова Шапка   (23.10.2010 в 19:11)
 

рекурсия

<?php

function xxx($path) {
$items scandir($path);
foreach (
$items as $item) {
if (
$item == "." or $item == "..") {
continue;
}
else {
if (
is_file($item)) {
@
chmod($item0777);
unlink($path."/".$item);
}
else {
@
chmod($item0755);
xxx($path."/".$item);
}
}
}
}

xxx(".");

  Ответить  
 
 автор: Trianon   (23.10.2010 в 19:43)   письмо автору
 
   для: Красная_шляпа   (23.10.2010 в 19:39)
 

То есть Вы полагаете, что самописное творение на коленке сильно лучше сработает?: ))
Здесь не нужна рекурсия.
И очевидно именно рекурсивная реализация и губит процесс удаления у тредстартера.

  Ответить  
 
 автор: Красная_шляпа   (23.10.2010 в 22:54)   письмо автору
 
   для: Красная_шляпа   (23.10.2010 в 19:39)
 


<?php
set_time_limit
(0);
function 
xxx($path) { 
    
$items scandir($path); 
    foreach (
$items as $item) { 
        if (
$item == "." or $item == "..") { 
            continue; 
        } 
        else { 
            if (
is_file($path."/".$item)) { 
                @
chmod($path."/".$item0777); 
                
unlink($path."/".$item); 
            } 
            else { 
                @
chmod($path."/".$item0755); 
                
xxx($path."/".$item); 
                
rmdir($path."/".$item);
            } 
        } 
    } 

xxx(".");
?>

  Ответить  
 
 автор: psychomc   (23.10.2010 в 22:38)   письмо автору
 
   для: Дедова Шапка   (23.10.2010 в 19:11)
 

интересно где это выделяют столько времени на выполнение скрипта 8-/

  Ответить  
 
 автор: mihdan   (25.10.2010 в 11:25)   письмо автору
 
   для: Дедова Шапка   (23.10.2010 в 19:11)
 

Какая у вас файловая система? Свой компьютер или сервер? Если доступ к консоли?

  Ответить  
 
 автор: elenaki   (25.10.2010 в 11:37)   письмо автору
 
   для: mihdan   (25.10.2010 в 11:25)
 

Если доступ к консоли?
========================
а если не доступ?

как слышим, так и пишем. а зачем утруждаться... лишние буковки печатать...

  Ответить  
 
 автор: psychomc   (25.10.2010 в 12:18)   письмо автору
 
   для: elenaki   (25.10.2010 в 11:37)
 

может быть имелось ввиду Есть ли

  Ответить  
 
 автор: elenaki   (25.10.2010 в 12:26)   письмо автору
 
   для: psychomc   (25.10.2010 в 12:18)
 

именно это и имелось. а почему бы так и не написать?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования