`
长虫的梅子
  • 浏览: 43503 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

递归删除指定目录下的所有文件

    博客分类:
  • PHP
PHP 
阅读更多
<?php
/××
 × 递归删除指定目录下的所有文件和目录
 * @param $dir 指定目录
 ×/
function deldir($dir) {
	$dirhandle=@opendir($dir);
    while($file_name=@readdir($dirhandle)){
        	if ($file_name!='.' && $file_name!='..'){
			if (is_dir("$dir/$file_name")){
				deldir($dir.'/'.$file_name);
				@rmdir("$dir/$file_name");
			}else{
				@unlink("$dir/$file_name");
			}
		}
	}
	@closedir($dirhandle);
}

// 调用
deldir('file');



这里用到几个系统函数
1、opendir(path, context) 打开目录
参数一:打开的目录路径(必需)
参数二: 规定目录句柄的环境 (可选,还没用过)
返回: 成功,返回一个目录流,否则返回 false 以及一个 error。

2、readdir(dir_stream) 读文件
参数:由opendir函数返回的目录流,也就是目录句柄。(必需)
返回:成功,返回目录中下一个文件的文件名。

3、is_dir(file) 检测是否是目录
参数: 函数检查指定的文件是否是目录。(必需)
返回: boolean

4、rmdir(dir, context) 删除目录
参数一:规定要删除的目录 (必需)
参数二:规定目录句柄的环境 (可选,还没用过)
返回:  boolean

5、unlink(filename, context) 删除文件
参数一:规定要删除的文件 (必需)
参数二:规定目录句柄的环境 (可选,还没用过)
返回: boolean

通常在使用这几个函数
opendir()、readdir()、rmdir()、unlink()时,在前面加上错误抑制符'@'。








分享到:
评论

相关推荐

    使用c语言递归删除指定文件夹下所有的文件(包含文件以及文件夹)

    本代码使用c语言,可执行递归删除指定文件夹下所有的文件(包含文件以及文件夹)的操作,注释详细,易于使用或修改

    递归删除文件或子目录

    通过这样的设计和实现,你可以创建一个能够递归删除指定目录及其所有内容的程序,同时尊重只读属性,避免不必要的数据丢失。然而,实际操作时务必谨慎,因为这种操作不可逆,可能会导致重要数据的永久删除。在执行...

    递归删除指定类型的文件夹,递归删除指定类型的文件

    2. **递归删除指定类型的文件**:类似地,我们创建另一个函数,接收目录路径和文件扩展名作为输入。这个函数会遍历指定目录中的所有文件,如果文件的扩展名匹配到指定类型,就删除该文件。同样,它也会递归地处理子...

    递归删除指定文件夹下的指定文件夹及文件

    递归删除指定文件夹下的指定文件夹及文件,如删除文件夹中的所有.svn的文件夹及文件

    BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹1.zip

    本压缩包文件“BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹1.zip”包含了用于自动删除指定路径下非特定文件或文件夹的BAT脚本。以下是关于这个脚本和批处理技术的详细解释: *...

    一个递归删除指定目录和文件的例子

    结合这些文件,我们可以推测这是一个简单的Windows GUI应用程序,用户通过对话框选择一个目录,然后程序递归删除所选目录及其内容。实际实现可能更复杂,包括错误处理、用户界面反馈等,但基本思路就是上述的递归...

    递归删除指定文件例子

    在这个例子中,“dpdb.bat”很可能就是一个批处理脚本,用于删除指定目录下的pdb文件。让我们分析一下可能的脚本内容: ```batch @echo off setlocal enabledelayedexpansion for /r %%i in (*.pdb) do ( if exist...

    Qt删除一个目录下所有文件和文件夹

    在Qt编程中,删除一个目录下所有文件和文件夹是一个常见的任务,这通常涉及到文件系统操作。Qt提供了QDir类来处理与目录和文件相关的操作。以下是对这个知识点的详细说明: 首先,我们需要理解QDir类。QDir是Qt中的...

    删除目录下所有文件的vb.net代码

    在VB.NET编程环境中,删除目录下所有文件及子目录是一项常见的任务,这通常涉及到文件系统对象的使用。本文将深入探讨如何使用VB.NET编写代码来实现这一功能。 首先,我们需要了解VB.NET中的`System.IO`命名空间,...

    QT递归删除文件夹,而不删除自己文件夹

    当递归删除文件夹时,会把自己文件夹也删除掉,比如要删除E:/testTemp/qftp 这个文件夹下多有文件,但会把qftp这个文件夹删除,本程序改进后将不删除qftp文件夹,但qftp文件夹下的所有文件都会删除

    BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹2.zip

    本压缩包文件“BAT批处理脚本-文件相关操作-删除指定路径下指定文件及文件夹外的所有文件及文件夹2.zip”主要包含了关于如何使用批处理脚本来删除特定路径下非指定文件和文件夹的脚本。 批处理脚本(.bat)是基于...

    (VS2010 C++)删除指定目录及其下所有的文件夹,文件

    在C++编程中,删除指定目录及其所有子文件夹和文件是一项常见的操作,尤其是在系统清理、软件卸载或数据管理的场景中。本示例基于Visual Studio 2010 (VS2010)环境,使用C++语言实现这一功能。我们将探讨如何通过...

    java 删除指定目录下的文件

    在Java编程语言中,删除指定目录下的文件是一个常见的任务,特别是在处理文件系统操作时。本文将深入探讨如何使用Java API来实现这一功能,主要关注`java.io`和`java.nio.file`这两个包中的相关类和方法。 首先,...

    递归删除列表文件以外的所有文件源代码.rar

    在IT行业中,编程时常会遇到需要清理特定目录下文件的需求,比如保留指定列表中的文件而删除其他所有文件。这个场景通常使用递归方法来解决,因为递归允许我们逐级遍历目录结构并处理每个子目录。在这个"递归删除...

    非递归删除非空目录(源代码)

    `DeleteFile`函数用于删除指定的文件。它的原型如下: ```cpp BOOL DeleteFile( _In_ LPCTSTR lpFileName ); ``` 参数`lpFileName`是一个指向包含要删除文件的完整路径的字符串。如果文件存在并且可以被删除...

    批处理删除指定文件夹下的所有文件和文件夹

    ### 批处理删除指定文件夹下的所有文件和文件夹 ...综合来看,推荐使用**方法四**,即结合`DEL`与`RD`命令来实现指定文件夹下所有文件和子文件夹的删除。这种方法不仅能够满足需求,而且较为简洁高效。

    java递归实现删除文件夹

    但如果目录非空,该方法将失败,除非递归删除所有子文件和子目录。 3. **递归删除实现** - 首先,我们需要检查给定的文件或目录是否存在。如果不存在,无需执行删除操作。 - 然后,使用`isDirectory()`方法判断...

    python递归删除指定目录及其所有内容的方法

    以下是一个Python函数,名为`del_dir_tree`,用于递归删除指定的目录及其内容: ```python import os def del_dir_tree(path): ''' 递归删除目录及其子目录, 子文件 ''' # 检查路径是否为文件 if os.path.is...

    C#删除FTP文件夹(有子文件夹和子文件)的方法

    为了实现递归删除,我们需要先获取文件夹下的所有子文件夹和文件,然后再逐一删除。这里需要用到自定义的`FtpDirInfo`类来帮助获取这些信息: ```csharp private string[] GetDeleteFolderArray(string path) { ...

    java递归删除文件和文件夹.pdf

    "Java 递归删除文件和文件夹" Java 递归删除文件和文件夹是 Java 编程中一个常见的操作。该操作需要使用 Java 的 File 类来实现,通过递归调用来删除文件和文件夹。 File 类 在 Java 中,File 类是用于表示文件和...

Global site tag (gtag.js) - Google Analytics