다음 PHP 코드를 이용하면, 모든 OS에서 동일하게 빈 디렉토리를 삭제할 수 있다. 같은 일을 하는 코드를 찾아봤지만, 없어서 직접 구현해보았다. 간단하다, 모든 디렉토리를 순회하면서 해당 디렉토리 내에 파일/디렉토리가 있는지 검사해서 아무 것도 없으면, 삭제 대상으로 등록하고, 나중에 한방에 지우도록 한 것이다.
// ----------------------------------------- // 빈 디렉토리 삭제 // ----------------------------------------- $dst_dir = "C:\\"; // ----------------------------------------- function find_empty_folder($dst_dir) { $result = array(); $i = 0; $rdi = new RecursiveDirectoryIterator($dst_dir); try { foreach (new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD) as $path) { if ($path->isDir()) { if(2 == count(scandir($path->__toString()))) { $result[$i++] = $path->__toString(); } } } } catch(Exception $e) { echo "Message: ".$e->getMessage(); } return $result; } $list_empty_folder = find_empty_folder($dst_dir); foreach($list_empty_folder as $empty_folder) { echo $empty_folder."\n"; unlink($empty_folder); }
댓글 없음:
댓글 쓰기