这就是我所拥有的,但它不起作用,也没有给我一个错误:
$MyDir = "C:/some_folder/";
// DELETE ALL EMPTY FILES
$filesDVA = glob($MyDir.'*'); // get all file names
foreach($filesDVA as $file){ // iterate files
if(empty($file))
unlink($file); // delete file
}
我想删除主目录和子目录中的空文件,如果可能的话,检查目录是否也为空,如果它也是删除它。
更新:
foreach (glob($MyDir . '*') as $file) {
if (is_writable($file) && filesize($file) < (1024 * 1)) {
unlink($file);
}
}
它删除了空文件(或小于1kb的文件,但是在尝试访问每个目录的权限被拒绝的目录时它会给我一个错误,因此它不会删除空目录或其中的文件子目录。
答案 0 :(得分:3)
empty($file)
不会检查$file
引用的文件是否为空,它会检查变量 $file
是否为空。即,如果$file
包含空字符串""
或null
,则empty($file)
将返回true。由于您的$file
包含非空字符串(文件名),因此empty($file)
将始终返回false,而不管文件内容如何。您想检查filesize($file)
是否为零。