그누보드

그누보드 사용자들을 위한 정보 공유 공간! 설치, 테마, 플러그인, 커스터마이징 팁 등 그누보드에 대한 모든 것을 이야기해보세요!

2025.02.22 00:07

그누보드:get_dirsize() 디렉토리 용량 계산

  • 나우호스팅 21일 전 2025.02.22 00:07
  • 20
    0


/*
 * 그누보드 원본 코드 분석 (LGPL 라이선스 적용) 
 * 출처: https://github.com/gnuboard/gnuboard5
 * 라이선스: GNU General Public License v2.0 또는 그 이후 버전
*/
function get_dirsize($dir)
{
    $size = 0;
    $d = dir($dir);
    while ($entry = $d->read()) {
        if ($entry != '.' && $entry != '..') {
            $size += filesize($dir.'/'.$entry);
        }
    }
    $d->close();
    return $size;
}


GnuBoard의 디렉토리 크기 계산 함수


GnuBoard는 PHP를 기반으로 개발된 오픈 소스 CMS입니다. 이 글에서는 GnuBoard에서 사용되는 디렉토리 크기 계산 함수인 `get_dirsize` 함수를 분석합니다.

# 함수 정의


#hostingforum.kr
php

function get_dirsize($dir)

{

    $size = 0;

    $d = dir($dir);

    while ($entry = $d->read()) {

        if ($entry != '.' && $entry != '..') {

            $size += filesize($dir . '/' . $entry);

        }

    }

    $d->close();

    return $size;

}



# 함수 설명


`get_dirsize` 함수는 지정된 디렉토리의 크기를 계산하는 함수입니다. 이 함수는 디렉토리 내의 모든 파일과 서브 디렉토리의 크기를 합산하여 디렉토리의 총 크기를 반환합니다.

# 함수 동작 순서


1. 함수는 디렉토리 크기 계산을 위한 변수 `$size`를 초기화합니다.
2. 디렉토리 열기: `dir($dir)` 함수를 사용하여 디렉토리를 열고 `$d` 변수에 디렉토리 핸들러를 저장합니다.
3. 디렉토리 내의 항목 읽기: `while` 루프를 사용하여 디렉토리 내의 항목을 읽습니다. `dir($dir)->read()` 함수를 사용하여 디렉토리 내의 항목을 읽고 `$entry` 변수에 항목 이름을 저장합니다.
4. 항목 이름 검사: 항목 이름이 '.' 또는 '..'이 아닌 경우 (현재 디렉토리와 부모 디렉토리는 무시합니다) 파일 크기를 계산합니다.
5. 파일 크기 계산: `filesize($dir . '/' . $entry)` 함수를 사용하여 항목 이름을 포함한 파일의 크기를 계산합니다.
6. 크기 합산: 항목 크기를 `$size` 변수에 합산합니다.
7. 디렉토리 닫기: `dir($dir)->close()` 함수를 사용하여 디렉토리 핸들러를 닫습니다.
8. 디렉토리 크기 반환: `$size` 변수에 저장된 디렉토리 크기를 반환합니다.

# 예제


#hostingforum.kr
php

$dir = '/path/to/directory';

$size = get_dirsize($dir);

echo "디렉토리 크기: $size byte";



이 예제에서는 `/path/to/directory` 디렉토리의 크기를 계산하고 크기를 byte 단위로 출력합니다.

# 참고


* `dir()` 함수: 디렉토리 핸들러를 반환합니다.
* `read()` 함수: 디렉토리 내의 항목을 읽습니다.
* `filesize()` 함수: 파일 크기를 계산합니다.
* `close()` 함수: 디렉토리 핸들러를 닫습니다.

이 게시물에 포함된 라이브러리

[PHP] filesize - 파일 크기를 가져옵니다
[PHP] file - 전체 파일을 배열로 읽습니다.
[PHP] echo - 하나 이상의 문자열을 출력합니다.
[PHP] dir - Directory 클래스의 인스턴스를 반환합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 그누보드 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 5건 / 1 페이지

검색

게시물 검색