删除包含文件的目录?

删除包含文件的目录?

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

我正在使用rmdir(PATH . '/' . $value);删除文件夹,但是,如果其中有文件,我根本无法删除它。


紫衣仙女
浏览 387回答 3
3回答

吃鸡游戏

现在至少有两种选择。在删除文件夹之前,删除它的所有文件和文件夹(这意味着递归!)。这是一个例子: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);}如果你使用的是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);

MMMHUHU

我通常用它来删除文件夹中的所有文件:array_map('unlink', glob("$dirname/*.*"));然后你就可以做到rmdir($dirname);

哔哔one

删除包含所有文件的目录的最简单方法是什么?system("rm -rf ".escapeshellarg($dir));
打开App,查看更多内容
随时随地看视频慕课网APP