Удаление директорий с сервера (Локального)

SimpleTak

Новичок
Удаление директорий с сервера (Локального)

Не удаётся удалить директории с сервера с помощью функции rmdir(); если эта функция используется в цикле с использованием данных массива:
PHP:
foreach ($arrayDir as $filename){
  if(is_file($filename)){
    unlink($filename);
  } else {
    rmdir($filename);
 }
}
при таком использовании функции rmdir(); она возвращает ошибку:
"Warning: rmdir(S:/home/my.myrex/www/test/1): Permission denied in S:\home\my.myrex\www\system\function.inc.php on line 48"

как мне удалить директории???
-файлы удаляются нормально...
 
непонятно то, почему у меня недостаточно прав для удаления директории, так как через eval (если выполнить отдельно) всё удаляется нормально!
почему недостаточно прав в том случае если выполнять удаление через цикл???
 
примерно так:
PHP:
eval(rmdir('S:/home/my.myrex/www/test'));

и хоп-хоп директории нет!
 
какой-то ты бред несешь.
во первых это надо еще додуматься через евал это пустить.

непонятно то, почему у меня недостаточно прав для удаления директории, так как через eval (если выполнить отдельно) всё удаляется нормально!

почему недостаточно прав в том случае если выполнять удаление через цикл???
rmdir('S:/home/my.myrex/www/test'); вне цикла, то че?
 
корочевот эта функция выдаёт ошибки при удалении директории, что прав для удаления недостаточно:
PHP:
function scandelfile($dir){
	$du[]=$dir;
	$dh=opendir($dir);
	while (false !== ($filename = readdir($dh))){
		if ($filename != '.' && $filename != '..'){
			$diro=$dir.'/'.$filename;
			if(is_dir($diro)){
				scandelfile($diro);
			} else {
				$du[]=$diro;
			}
		}
	}
// массив $du[] содержит пути файлов и директорий
	foreach ($du as $dudu){
		if(is_file($dudu)){
			unlink($dudu); // удаляем файлы (успешно)
		} else {
			rmdir($dudu); // удаляем директории (неудачно - недостаточно прав)
		}
	}
}
 
SimpleTak
хорошо, что ты делешься со всем этой функцией, но что нам с ней делать то ? она же не "не работает".
 
у меня эта функция возвращает:

Warning: rmdir(S:/home/my.myrex/www/test/1): Permission denied in S:\home\my.myrex\www\system\function.inc.php on line 53

Warning: rmdir(S:/home/my.myrex/www/test/1): Permission denied in S:\home\my.myrex\www\system\function.inc.php on line 53

Warning: rmdir(S:/home/my.myrex/www/test): Permission denied in S:\home\my.myrex\www\system\function.inc.php on line 53

а функция эта используется внутри другой функции...
короче кошмар какой-то, я уже три часа с этой фигнёй сижу...
и ведь должно-же работать, а неработает, зараза!!!

-- line 53 -это rmdir($dudu);
и ведь проверял $dudu -корректная пустая директория и при других условиях удаляется элементарно!
 
>и ведь должно-же работать
кому должно ?
еще раз повторяю, в сообщении об ошибке все есть.
 
Всё удачно разрешилось!

...
нужно просто освобждать дескропторы каталогов перед их удалением
 
нужно просто освобждать дескропторы каталогов перед их удалением
PHP:
function SureRemoveDir($dir) {
   if(!$dh = @opendir($dir)) return;
   while (($obj = readdir($dh))) {
     if($obj=='.' || $obj=='..') continue;
     if (!@unlink($dir.'/'.$obj)) {
         SureRemoveDir($dir.'/'.$obj);
     } else {
         $file_deleted++;
     }

   }

   //освобждаем дескроптор 
   closedir($dh);

   if (@rmdir($dir)) $dir_deleted++;

}

// например удаляем папку news в папке images
SureRemoveDir("images/news");
 
Сверху