php 递归删除指定目录的文件夹和文件
时间: 2024-01-21 09:04:01 浏览: 65
您可以使用以下PHP代码来递归删除指定目录的文件夹和文件:
```php
function deleteDirectory($dir) {
if (!is_dir($dir)) {
return;
}
$files = scandir($dir);
foreach ($files as $file) {
if ($file === '.' || $file === '..') {
continue;
}
$path = $dir . '/' . $file;
if (is_dir($path)) {
deleteDirectory($path);
} else {
unlink($path);
}
}
rmdir($dir);
}
```
您可以通过调用 `deleteDirectory($dir)` 来删除指定目录 `$dir` 及其下的所有文件和文件夹。该函数首先检查目录是否存在,然后遍历目录中的所有文件和子目录。对于子目录,它将递归调用自身来删除子目录中的内容。对于文件,它将使用 `unlink()` 函数删除文件。最后,它将使用 `rmdir()` 函数删除空目录。
请注意,此代码将删除指定目录及其下的所有内容,包括文件和子目录。在使用之前,请确保您已经备份了目录中重要的文件,并确认您希望彻底删除目录及其内容。
相关问题
php 递归删除文件夹以及文件夹下的指定内容和图片html文件除外
好的,您可以使用以下 PHP 代码来递归删除文件夹以及文件夹下的指定内容和图片,但保留 HTML 文件:
```
<?php
function deleteFolder($dir) {
if (!is_dir($dir)) {
return;
}
// 遍历文件夹中的所有文件和子文件夹
$files = scandir($dir);
foreach ($files as $file) {
if ($file == '.' || $file == '..') {
continue;
}
$filePath = $dir . '/' . $file;
// 如果当前路径是文件夹,递归删除文件夹
if (is_dir($filePath)) {
deleteFolder($filePath);
} else {
// 如果当前路径是文件,判断是否需要删除
$fileExt = pathinfo($filePath, PATHINFO_EXTENSION);
if ($fileExt != 'html' && $fileExt != 'htm' && strpos($filePath, '指定内容') !== false) {
unlink($filePath);
}
}
}
// 删除空文件夹
rmdir($dir);
}
// 调用函数删除对应文件夹
deleteFolder('/path/to/folder');
?>
```
在代码中,您需要将 `/path/to/folder` 替换为您要删除的文件夹路径,同时将 `指定内容` 替换为您要删除的内容的关键词或文件名。代码会自动保留 HTML 文件,并删除指定内容和图片。
阅读全文