|
|
|
| Попробовал запустить рекурсивную функцию из листинга 13.67, которая должна удалить папку, даже если папка не пустая, но PHP выдает ошибку Warning: rmdir(folder1) [function.rmdir]: Directory not empty in D:\xampp\htdocs\listingi\listing13_67.php on line 22
<?php
function recursiveDeleteFolder($directory)
{
$dd = opendir($directory);
while($file = readdir($dd)!==false)
{
if(is_file("$directory/$file"))
{
unlink("$directory/$file");
}
else if(is_dir("$directory/$file")&&$file!="."&&$file!="..")
{
recursiveDeleteFolder("$directory/$file");
}
}
closedir($dd);
rmdir($directory);
echo "folder succesfuly delete";
}
recursiveDeleteFolder("folder1");
?>
|
Подскажите, пожалуйста, в чем причина? Ведь функция должна предварительно почистить содержимое папки, если та не пустая. | |
|
|
|
|
|
|
|
для: FallenAngel
(18.09.2011 в 23:42)
| | 1) А в реальности папка folder1 пустая в момент удаления?
2) Дело где происходит в Windows или в Linux? Может у PHP нет прав доступа на удаление файлов? | |
|
|
|
|
|
|
|
для: cheops
(20.09.2011 в 16:20)
| | 1) Папка содержит другие файлы
2) В Windows
Нашел причину в строке
while($file = readdir($dd)!==false)
| , переменная file вместо имени файла содержала "1". Изменил на
while($file = readdir($dd))
| - скрипт удалил папку и все ее содержимое | |
|
|
|