php 判斷資料夾是否為空
function isDirEmpty($dir) {
$handle = opendir($dir);
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
closedir($handle);
return FALSE;
}
}
closedir($handle);
return TRUE;
}
判斷資料夾底下是不是只有一個資料夾,這裡用傳統的 scandir 去處理。 如果不是,傳回 false,如果是,傳回該資料夾 full path
function isDirOnlyIncludeOneFolder($dir){
$fileList = scandir($dir);
if( count($fileList) >= 4 ){
return false;
}else{
foreach($fileList as $file){
if( $file === '.' ){ continue; }
if( $file === '..' ){ continue; }
if( is_dir("{$dir}{$file}") ){
return "{$dir}{$file}";
}else{
return false;
}
}
}
}
php 移除這個資料夾底下所有空的資料夾,這裡就不用 scandir 了,改用 php 後來提供的 DirectoryIterator,以及使用了遞迴( recursive ) 的方式去處理
function RemoveEmptySubFolders($path){
$empty = true ;
$i = new DirectoryIterator($path);
foreach($i as $f) {
if($f->isFile()) {
$empty = false;
} else if(!$f->isDot() && $f->isDir()) {
if( !RemoveEmptySubFolders($f->getRealPath()) ){
$empty = false;
}
}
}
if($empty){
rmdir($path);
}
return $empty;
}