PHP删除所有文件夹内容而不删除根文件夹

时间:2014-04-02 16:55:45

标签: php

我试图用PHP删除文件夹的内容。此文件夹包含子文件夹和文件。我想删除除根文件夹以外的所有内容。

例如:

FolderFather
--Folderchild1
--FolChild2
----SubFolChild2
------Anotherfile.jpg
--MyFile.jpg

我想删除除根目录文件夹以外的所有文件夹。

4 个答案:

答案 0 :(得分:2)

喜欢的东西     

function empty_dir($directory, $delete = false)
{
    $contents = glob($directory . '*');
    foreach($contents as $item)
    {
        if (is_dir($item))
            empty_dir($item . '/', true);
        else
            unlink($item);
    }
    if ($delete === true)
        rmdir($directory);
}

应该有用。

E.g。 empty_dir('/some/path/');应清空该目录而不删除, empty_dir('/some/path/', true);应该清空而不是删除目录。

答案 1 :(得分:0)

尝试:

function deleteAll($path)
{
    $dir = dir($path);

    while ($file = $dir->read())
    {
        if ($file == '.' || $file == '..') continue;

        $file = $path . '/' . $file;

        if (is_dir($file))
        {
            deleteAll($file);
            rmdir($file);
        }
        else
        {
            unlink($file);
        }
    }
}

调用deleteAll('/path/to/FolderFather');应该按预期工作。

答案 2 :(得分:0)

您可以将scandir()用于目录内容,使用unlink()来删除内容。

<?php
$dir = "/yourfolder";
$dir_contents = scandir($dir);

foreach($dir_contents as $content)
{
    unlink($dir.'/'.$content);
}

答案 3 :(得分:0)

$contents = glob('path/*');     // to get all the contents
foreach ($contents as $file) {  // loop the  files
    if (is_file($file)) {
        unlink($file);          //-------  delete the file
    }
}