Короткая функция, выполняющая задание:
function deleteDir($path) {
return is_file($path) ?
@unlink($path) :
array_map(__FUNCTION__, glob($path.'/*')) == @rmdir($path);
}
Я использую его в классе Utils следующим образом:
class Utils {
public static function deleteDir($path) {
$class_func = array(__CLASS__, __FUNCTION__);
return is_file($path) ?
@unlink($path) :
array_map($class_func, glob($path.'/*')) == @rmdir($path);
}
}
С большой силой приходит большая ответственность: Когда вы вызываете эту функцию с пустым значением, она удаляет файлы, начиная с root (/
). В качестве защиты вы можете проверить, пуст ли пуст:
function deleteDir($path) {
if (empty($path)) {
return false;
}
return is_file($path) ?
@unlink($path) :
array_map(__FUNCTION__, glob($path.'/*')) == @rmdir($path);
}
Так как это не было упомянуто до сих пор с Java 10, можно использовать новое copyOf
метод фабрики:
List.copyOf(set);
От Javadoc:
Возвраты немодифицируемый Список содержащий элементы данного Набора, в его итеративном порядке.