@KuzmenkoArtem

Узнать можно ли удалить файл?

Все привет!
Пытаюсь удалить файл через unlink но он мне выдает ошибку
unlink(818ff467b7fa08cca683834ac424c1ba.csv): Permission denied
(jошибка мне понятна)

Я хочу прежде чем попробовать удалить проверить можно ли файл удалить

В момент когда файл нормально удаляется и когда не удаляется, права на него всегда 0666

Какие у меня варианты?

UPD - файл может быть занят другим процессом. Может быть можно это как-то проверить?
UPD UPD - Пробовал использовать is_writable, что бы узнать доступен ли файл для записи, когда is_writable возвращает true, все равно unlink выдает ошибку.
Как ни странно, с файлами в формате xls проблем нет, а с csv и xlsx есть.

Перед удалением файл скачиваетcя, и я так понимаю что когда он скачивается он блокируется. Но тем ни мение после того как файл скачался, его еще минуту нельзя удалить (всегда по разнному).

UPD UPD UPD также пробовал открыть c режимом A (fopen($path, 'a')) - открывает нормально, но проблема остается.

UPD UPD UPD UPD я начинаю верить в магию...
  • Вопрос задан
  • 263 просмотра
Решения вопроса 1
alsopub
@alsopub
Если ничего из перечисленного не поможет - останется попробовать открыть файл на "запись в конец файла".
Вроде бы эта операция должна требовать те же возможности что и удаление.
С другой стороны - зачем вам это нужно? Сделайте @unlink и если файл не пропал, значит "удаление невозможно".
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
taliban
@taliban
php программист
Проверьте есть ли права на запись, если запись есть, то и удаление есть
Ответ написан
@springimport
Попробуйте сторонние библиотеки (packagist), посмотрите как они это делают. Наверняка, там много разных проверок. А в случае ошибки - получите понятную причину.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы