当前位置: 首页 > 面试题库 >

删除目录中的文件吗?

楚硕
2023-03-14
问题内容

我想知道,删除包含所有文件的目录的最简单方法是什么?

我正在rmdir(PATH . '/' . $value);删除一个文件夹,但是,如果其中有文件,我将无法删除。


问题答案:

如今至少有两种选择。

  1. 在删除文件夹之前,请删除其所有文件和文件夹(这意味着递归!)。这是一个例子:

    public static function deleteDir($dirPath) {
    if (! is_dir($dirPath)) {
        throw new InvalidArgumentException("$dirPath must be a directory");
    }
    if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') {
        $dirPath .= '/';
    }
    $files = glob($dirPath . '*', GLOB_MARK);
    foreach ($files as $file) {
        if (is_dir($file)) {
            self::deleteDir($file);
        } else {
            unlink($file);
        }
    }
    rmdir($dirPath);
    

    }

  2. 如果您使用的是5.2+,则可以使用RecursiveIterator来实现,而无需自己实现递归:

$dir = 'samples' . DIRECTORY_SEPARATOR . 'sampledirtree';
$it = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($it,
         RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
if ($file->isDir()){
    rmdir($file->getRealPath());
} else {
    unlink($file->getRealPath());
}
}
rmdir($dir);


 类似资料:
  • 我有一个目录,它是在执行应用程序后创建的。在使用应用程序的过程中,它充满了一些图片,这些图片是ComboBox的ItemsSource。在关闭应用程序之前,我试图通过设置new()或NULL来清除ItemsSource并删除该目录。如果目录为空,则会正常删除。但除此之外——什么都没有发生,也没有例外。我做错了什么? 创建目录并将路径值分配给“FeedBackScreenshotsPath” 删除

  • 前面小节介绍了如何使用 touch 和 mkdir 创建文件和目录,本小节介绍如何删除文件和目录。 1. 删除文件 使用 rm 文件名 命令可以删除文件,以删除普通文件为例: ls -l # 列出当前目录下的所有文件 rm test.c # 使用 rm 命令删除 test.c 文件 ls -l # 再次查看当前目录下的所有文件 执行结果如下图: 可以看到 test.c 文件已经被删除了

  • 问题内容: 我想删除目录中带有扩展名的所有文件。如何在Python中做到这一点? 问题答案: 通过和: 仅使用一个循环: 或通过: 确保位于正确的目录中,并最终使用。

  • 本文向大家介绍PHP删除指定目录中的所有目录及文件的方法,包括了PHP删除指定目录中的所有目录及文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP删除指定目录中的所有目录及文件的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 在我的系统中,我每天都在1个文件夹中下载新构建,然后将其用于进一步的原因,但在运行jenkins作业后,我想删除文件夹(不是工作区)中的文件,这将从同一目录中删除特定文件夹。这将帮助我每次根据在同一台机器上运行的不同jenkins作业下载新构建。 EG: 我正在下载x.x构建,然后在机器上运行jenkins作业,然后如果我想运行其他需要x.y构建的作业,它会查看文件夹中是否已经有一些构建。如果有,

  • 我的应用程序将txt文件存储在FTP服务器上,该服务器也托管在WebService上。 但是,即使该目录中有txt文件,FTP重置是: