unlink或rmdir无法删除folder.only删除文件夹中的文件

时间:2013-03-01 06:50:47

标签: php unlink rmdir

我在upload / project1 / update中有文件。

问题是,只删除更新中的文件。我想删除文件夹上传中的目录...这意味着,文件夹名称'project1'和'update'也会在更新后的文件被删除后删除。你能找到我的错误吗?

$id = $_GET['id'];
$filename = $_GET['filename']; //gets the file name eg:update.zip
$fname = $_GET['fname']; //gets the folder name eg: project1
$upload = "upload/";

$name = explode(".", $filename);
$folder = $fname."/".$name[0];

$files = glob($upload.$folder.'/*'); // get all file names
foreach($files as $file)
{ // iterate files
if(is_file($file))
 unlink($file); // delete file dlm folder

}

closedir($name[0]); //close update dir
rmdir($name[0]); //remove update dir

此编码发出警告

  

警告:closedir()希望参数1为资源,

     

警告:rmdir(更新)[function.rmdir]:没有这样的文件或目录..

但是在目录上传中,请将此文件设为project1 / update。

另外,文件名为'update.zip'只是数据库中的名称..不在目录中。

1 个答案:

答案 0 :(得分:0)

对于之前未使用closedir() PHP函数打开(并存储在文件句柄中)的目录,您不能opendir()。如果您想要closedir(),则需要首先使用opendir()获取此目录的文件句柄。这是根据PHP手册:http://php.net/manual/en/function.closedir.php

此外,如果您想rmdir()一个目录,它需要完全为空,您需要相应的权限。否则,您将收到错误。这也是根据PHP手册:http://php.net/manual/en/function.rmdir.php