php递归删除目录下的文件但保留的实例分享
一、只删除目录下的文件,保留目录结构
我们有时需要清理某个目录下的文件,但又希望保持其目录结构不变。这种情况下,我们可以使用以下PHP函数来实现:
```php
function deleteFilesUnderDirectory(string $dirName) {
if (is_dir($dirName)) {
$handle = opendir($dirName);
if ($handle) {
while (($item = readdir($handle)) !== false) {
if ($item != "." && $item != "..") {
if (is_dir("$dirName/$item")) {
deleteFilesUnderDirectory("$dirName/$item"); // 递归处理子目录
} else {
if (unlink("$dirName/$item")) {
echo "已删除文件 $dirName/$item
";
}
}
}
}
closedir($handle);
}
}
}
```
调用这个函数,你可以轻松删除指定目录下的所有文件,同时保留目录结构。例如,`deleteFilesUnderDirectory("/path/to/your/directory")`。
二、删除目录及其下的所有文件
如果你想删除一个目录及其下的所有文件和子目录,可以使用以下函数:
```php
function deleteDirectoryAndFiles(string $dirName) {
if (is_dir($dirName)) {
$handle = opendir($dirName);
if ($handle) {
while (($item = readdir($handle)) !== false) {
if ($item != "." && $item != "..") {
if (is_dir("$dirName/$item")) {
deleteDirectoryAndFiles("$dirName/$item"); // 递归处理子目录
} else {
if (unlink("$dirName/$item")) {
echo "已删除文件 $dirName/$item
";
}
}
}
}
closedir($handle);
if (rmdir($dirName)) { // 删除空目录
echo "成功删除目录 $dirName
";
}
}
} else { // 如果不是目录则直接删除文件并提示错误信息。这里假设传入的路径不是文件路径。如果是文件路径,你可能需要添加额外的错误处理逻辑。 这个问题需要根据实际使用场景来决定如何处理非目录路径的情况。比如你可以抛出一个异常或者打印一条错误信息。 } 也可以对代码进行改进,使其能够处理非目录路径的情况。例如增加一个参数来指定是否允许删除非目录路径的文件等。 } } } 否则返回错误信息。这里提供一个基本的错误处理机制供参考: 在函数开始时检查是否为文件而不是目录。如果是文件,可以打印错误信息或抛出异常。如果是目录则继续执行删除操作。这样可以在调用函数时更加灵活和安全地处理各种情况。" 你可以根据自己的需求进行修改和扩展这个函数以适应你的应用场景。" 这样就可以更加灵活地处理各种情况包括错误处理和异常情况的处理。"}} ```php 以上是两种基于PHP的递归删除文件和目录的方法的介绍和代码示例。你可以根据自己的需求选择使用哪种方法并对其进行适当的修改和扩展以满足你的实际需求。希望这些代码示例能够帮助你实现你的目标并提升你的开发效率。
编程语言
- php递归删除目录下的文件但保留的实例分享
- 代码中到底应不应当写注释?
- Angular中的ng-template及angular 使用ngTemplateOutlet 指令
- php生成rss类用法实例
- 给Easyui-Datebox设置隐藏或者不可用的解决方法
- Angular模板表单校验方法详解
- 微信小程序链接传参并跳转新页面
- .Net语言Smobiler开发利用Gridview控件设计较复杂的表
- JS+CSS实现网页加载中的动画效果
- vue打包的时候自动将px转成rem的操作方法
- 彻底删除thinkphp3.1案例blog标签的方法
- php之Memcache学习笔记
- php中实现记住密码下次自动登录的例子
- jQuery实现炫酷的鼠标轨迹特效
- 基于IView中on-change属性的使用详解
- 在create-react-app中使用css modules的示例代码