删除目录和其中的所有文件


Delete Directory and All Files Within

我使用以下行在服务器上创建了一个目录:

mkdir("/var/www/cache/$directory", 0700);

然后我用这个复制了一些文件:

copy($remote, $local);

现在我正试图用这个删除目录及其所有文件,但它不会起作用:

$local = "/var/www/cache/$directory";
$removed = unlink($local);

有没有用一个内衬而不是for环之类的东西来做这件事?

您可以使用php中的RecursiveIteratorIterator类来完成此操作。

就是一个简单的例子

$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS),
RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($files as $fileinfo) {
$todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink');
$todo($fileinfo->getRealPath());
}
rmdir($dir);

这里也描述了许多方法。。