【发布时间】:2012-04-11 22:31:10
【问题描述】:
我尝试使用以下功能删除完整文件夹,但它似乎没有删除任何想法或建议?
public function submit()
{
$location = $_SERVER['DOCUMENT_ROOT'].'/_assets/quote/uploads/';
$folderName = $this->quote->getCompanyDetails()->companyName;
$data['companyContact'] = $this->quote->getCompanyDetails()->companyContact;
$this->load->view('submit',$data);
$this->quote->removeQuote();
if(is_dir($location.$folderName) === TRUE)
{
$files = array_diff(scandir($location.$folderName), array('.','..'));
foreach($files as $file)
{
Delete(realpath($location.$folderName).'/'. $file);
}
return rmdir($location.$folderName);
}
else if(is_file($location.$folderName) === TRUE)
{
return unlink($location.$folderName);
}
return FALSE;
}
更新:
public function submit()
{
$location = $_SERVER['DOCUMENT_ROOT'].'/_assets/quote/uploads/';
$folderName = $this->quote->getCompanyDetails()->companyName;
$data['companyContact'] = $this->quote->getCompanyDetails()->companyContact;
$this->load->view('submit',$data);
//$this->quote->removeQuote();
$this->removeFolder();
}
private function removeFolder(){
$location = $_SERVER['DOCUMENT_ROOT'].'/_assets/quote/uploads/';
$folderName = $this->quote->getCompanyDetails()->companyName;
foreach(glob($location.$folderName.'/*') as $file)
{
if(is_dir($location.$folderName))
{
rmdir($location.$folderName);
}else{
unlink($location.$folderName);
}
rmdir($location.$folderName);
}
}
【问题讨论】:
-
你有权限删除操作系统上的文件吗?
-
您第一次调用“删除”,第二次调用“取消链接”。不应该两次都取消链接吗?
-
@kingcoyote 我在这里发现不确定是否正确
-
除非您使用定义 Delete 的库,否则它在 PHP 中本身并不存在。尝试用 unlink 替换对 Delete 的调用,这是删除文件的实际 PHP 命令。
-
你应该使用 unlink 两次
标签: php linux delete-file