2011-05-10

PHP : 윈도우 폴더 크기 구하기

PHP에서 윈도우에서 폴더 크기를 구하려면 아래와 같이 한다.  첫번째 방법은 인터넷에서 찾은 방법인데, 테스트해보니 결과값이 나오지 않았다. 그래서, 어쩔수 없이 하위 폴더를 모두 찾아가면서 파일크기를 모두 더해서 폴더의 전체용량을 구하는 것을 새로 만들었다. 전부다 뒤지기 때문에 시간이 좀 걸린다. 대신 윈도우 뿐만 아니라 다른 OS(Linux, BSD 등)에서도 동작한다는 장점이 있긴 하다. ^^


  • 윈도우 폴더 크기 구하기
    function Get_DirByteSize($Dir_Path) 
    {
        $objFs = new COM("Scripting.FileSystemObject"); 
        $objFolder = $objFs->GetFolder($Dir_Path); 
     
        return $objFolder->Size;  // byte 단위 
    }
    인터넷에서 찾은 예제 코드이긴 한데, 테스트해보니 결과 값이 나오지 않는다. ^^;
  • 무식하지만 확실하게 디렉토리 용량 구하는 방법 (OS 상관 없음)
    function Get_DirByteSize($dst_dir) 
    {
        $dir_size = 0;
     
        $rdi = new RecursiveDirectoryIterator($dst_dir);
        try {
            foreach (new RecursiveIteratorIterator($rdi, 
                RecursiveIteratorIterator::LEAVES_ONLY, 
                RecursiveIteratorIterator::CATCH_GET_CHILD) as $path) {
     
                if ($path->isFile()) {
                    $dir_size += $path->getSize();
                }
            }
        } catch(Exception $e) {
            echo "Message: ".$e->getMessage();
        }
     
        return $dir_size;
    }
     
    $dir_size = Get_DirByteSize("C:\\");
    echo "\nC Drive Size : $dir_size\n";

요즘, PHP를 이용해서 웹프로그래밍 외에 여러가지를 해보고 있는데, 상당히 쓸만하다. Perl, Python, Ruby 가 부럽지 않을 정도로 충분히 많은 것들이 갖추어져 있어서, 왠만한 분야에서 거의 쓰일 수 있을 것 같다.

댓글 없음:

댓글 쓰기