Абсолютный путь к файлу и unlink

Matinier

Постоялец
Регистрация
5 Окт 2009
Сообщения
65
Реакции
4
День добрый!
Проблема в следующем: пытаюсь удалить файл функцией unlink указывая в качестве аргумента абсолютный путь.
В итоге получаю:

WARNING: unlink(/var/www/site/site.ua/_megafolder/data/4057t.html) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in /var/www/site/site.ua/_megafolder/class.my.php on line 169

Файл в папке лежит. Права 666. Safe mod отключен.
В чем же проблема?
 
Права 666 на файл только? А на родительскую папку data какие права стоят?
 
Права на родительскую папку: 777
 
Тогда попробуй chdir использовать перед unlink:

PHP:
<?php
    $old = getcwd(); // текущий каталог
    chdir($path_to_file);
    unlink($filename);
    chdir($old); // восстанавливаем каталог 
?>
 
То есть пояснить почему unlink с абсолютным путем не работает никто не может?
 
Вот только что проверил - у меня файл удаляется. Права на папку 777 владелец не www-data, на файл 666 владелец вообще root. Не видя текст скрипта полностью сложно сказать что происходит. Может ты файл не закрываешь перед удалением, может еще что...
 
дык текст ошибки говорит о том что неверный путь или файл не существует ... => скорее всего путь то и неверный ..

отталкивайтесь от пути полученного к примеру таким образом
ну и там че-то добавьте/обрежте по мере необходимости вложенности
PHP:
print_R(dirname(__FILE__));
 
Вот кусок кода, который вызывает WARNING:

PHP:
$op_dir = opendir($this->_dbPath.'/');
while ($file = readdir($op_dir)) {
	if ( (strcmp(substr($file,-5),'.html') == 0) && is_file($this->_dbPath.'/'.$file) ) {
		unlink($this->_dbPath.'/'.$file);
	}
}
closedir($op_dir);

$this->_dbPath содержит абсолютный путь к родительской папке.
Как видно из кода перед unlink делается проверка на существование файла, т.е. файл таки существует и путь правильный.
В чем проблема?

P.S.: Да, я в курсе, что все это можно сделать просто через glob. Это не мой код, но мне надо исправить указанную в топике ошибку.
 
Дело в том, что $this->_dbPath содержит относительный путь и при этом раскладе функции opendir, is_file будут вести себя вполне положительно, за исключением функции unlink
 
Добавлено через 2 минуты
Дело в том, что $this->_dbPath содержит относительный путь и при этом раскладе функции opendir, is_file будут вести себя вполне положительно, за исключением функции unlink

Посты набиваете?
Написал же, что $this->_dbPath содержит абсолютный путь.
Вопрос остается открытым.
 
Назад
Сверху