Я пишу функцию PHP, которая удалит все файлы в каталоге, который был передан ей (и, возможно, расширит ее до рекурсивного удаления). Чтобы быть в безопасности, я хочу убедиться, что из-за ошибки или чего-то еще я не пытаюсь ничего удалить, если переданный каталог является корневым каталогом.
Права доступа к файлам должны защищать меня в значительной степени, но на всякий случай, и особенно если я расширю его до рекурсивного удаления, я просто хочу сделать этот дополнительный шаг.
В качестве усложняющего фактора этот код может быть запущен на машине с Windows или Linux, поэтому корневой каталог может выглядеть как «C: \» или «/». Я предполагаю, что есть и другие способы, которые действительно ссылаются на корень, возможно, 'c: \ temp ..'
Итак, есть ли в PHP надежный способ распознать, что спецификация dir преобразуется в корень файловой системы?
Разработка ...
Я пишу тесты PHPUnit для веб-приложения и пытаюсь создать инфраструктуру, в которой резервное копирование состояния приложения выполняется до запуска тестов, а затем восстанавливается. Приложение позволяет пользователям загружать файлы. В зависимости от того, что это за файл, он копируется в один из нескольких возможных каталогов.
Чтобы сохранить и восстановить состояние приложения, эти каталоги нужно куда-то скопировать, запустить тесты, а затем каталогам необходимо удалить свои файлы и извлечь их из резервной копии.
Расположение этих каталогов может различаться на разных машинах, и я знаю, что некоторые люди помещают их за пределы веб-приложения. Существует тестовый файл, который может быть прочитан тестом, в котором указано расположение этих каталогов для данного компьютера.
Если я не ограничиваю все эти каталоги определенным деревом каталогов, сложно выполнить заключение. Если я ограничу эти каталоги определенным деревом каталогов, тогда некоторым людям придется перенастроить свои машины.