PHP删除目录和任何子目录中的所有空文件

PHP删除目录和任何子目录中的所有空文件,php,Php,这是我所拥有的,但它不起作用,也没有给我一个错误: $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 } 我想删除主目录和子目录中的空

这是我所拥有的,但它不起作用,也没有给我一个错误:

$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);
    }
}
foreach(glob($MyDir.*')作为$file){
如果(可写($file)&&filesize($file)<(1024*1)){
取消链接($文件);
}
}

它删除空文件(或小于1kb的文件,但在尝试访问目录时出错,表示每个目录的权限被拒绝,因此它不会删除空目录或子目录中的文件。

empty($file)
不会检查
$file
引用的文件是否为空,它会检查变量
$file
是否为空。例如,如果
$file
包含空字符串
null
,则
empty($file)
将返回true。因为
$file
包含非空字符串(文件名),
empty($file)
将始终返回false,无论文件内容如何。您要检查是否为零。

empty($file)
不会检查
$file
引用的文件是否为空,它会检查变量
$file
是否为空。例如,如果
$file
包含空字符串
null
,则
empty($file)
将返回true。因为
$file
包含非空字符串(文件名),
empty($file)
将始终返回false,无论文件内容如何。您要检查该值是否为零。

删除前还需要检查文件是否存在如果其他语法正确,$file将永远不会为空。请尝试if(empty(file\u get\u contents($file)))删除前还需要检查文件是否存在如果其他语法正确,$file将永远不会为空。请尝试使用if(empty(file\u get\u contents($file)))谢谢你的帮助。我更新了我的代码,可以删除文件,但不会删除空目录或子目录中的空文件。请参阅上面更新的代码。你需要
rmdir()
删除目录。如果你想递归,你可以使用该类。好的,现在我完全迷路了…让我看看我是否能解决这个问题…或者你是否有时间给我写一个例子。谢谢你的帮助。我更新了我的代码,可以删除文件,但不会删除空目录或子目录中的空文件es。请查看上面更新的代码。您需要rmdir()来删除目录。如果您想要递归,您可以使用该类。好的,现在我完全迷路了…让我看看是否可以解决这个问题…或者您是否有时间给我写一个示例。