Perl에서 더 좋은 모듈을 발견하지는 못해서, 일일이 파일 사이즈를 모두 더해서 폴더 사이즈를 구하였다. 그래서 시간이 좀 걸린다.

첫번째 방법
use v5.10;
use strict;
use warnings;

use File::Find;

sub get_folder_size {
    my ($dst_folder) = @_;
    my $folder_size = 0;
    find( sub { $folder_size += -f $_ ? -s _ : 0 }, $dst_folder );

    return $folder_size;
}

say "Folder Size : ".get_folder_size("C:\\");


두번째 방법

# ------------------------------------------------------------------------------
# 필요한 모듈 : cpanm -n File::Find::Object 
# ------------------------------------------------------------------------------
use v5.10;
use strict;
use warnings;

use File::Find::Object;

sub get_folder_size {
    my ($dst_folder) = @_;
    my $folder_size = 0;

    my $tree = File::Find::Object->new({}, ($dst_folder));
    while(my $file = $tree->next()) {
        next unless -e $file; # 존재하지 않으면 다음
        next unless -f $file; # 일반파일이 아니면 다음
        next unless -r $file; # 
        next unless -R $file; # 
        $folder_size += -s $file;
    }

    return $folder_size;
}

say "Folder Size : ".get_folder_size("C:\\");


+ Recent posts