我正在尝试使用codeigniter删除产品图片文件夹。
此外,我试图制作的删除功能还需要删除其所有内容,如此空或不,文件夹将被删除。我猜,它会使用递归类型的删除...我不太确定。
我已尝试删除以下功能:
function delete_directory($path)
{
$path=base_url().'products/thumb/';
$this->load->helper("file"); // load the helper
delete_files($path, true); // delete all files/folders
//rmdir($dirname);
if(rmdir($path)){
echo 'deleted';die;}
else{
echo 'not';die; }
return true;
}
但它总是不返回
答案 0 :(得分:1)
删除目录内容: 它可能会工作,我用过
$this->load->helper('directory');
$this->load->helper("file");
$dir_fiels = directory_map('resources/captcha/');
$len = sizeOf($dir_fiels);
for($i=0; $i<$len;$i++){
unlink('resources/captcha/'.$dir_fiels[$i]);
}
答案 1 :(得分:0)
创建一个帮手。见下文: -
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('remove_directory'))
{
function remove_directory($directory, $empty=FALSE)
{
if(substr($directory,-1) == '/') {
$directory = substr($directory,0,-1);
}
if(!file_exists($directory) || !is_dir($directory)) {
return FALSE;
} elseif(!is_readable($directory)) {
return FALSE;
} else {
$handle = opendir($directory);
while (FALSE !== ($item = readdir($handle)))
{
if($item != '.' && $item != '..') {
$path = $directory.'/'.$item;
if(is_dir($path)) {
remove_directory($path);
}else{
unlink($path);
}
}
}
closedir($handle);
if($empty == FALSE)
{
if(!rmdir($directory))
{
return FALSE;
}
}
return TRUE;
}
}
}
然后在您的控制器中加载此帮助程序并调用函数 remove_directory()
/* End of file recursive_helper.php */
/* Location: /application/helpers/recursive_helper.php */
答案 2 :(得分:0)
删除所有文件:
delete_files('./path/to/your/directory/');
包含子文件夹:
delete_files('./path/to/your/directory/', TRUE);