2014-05-03

(Perl) 폴더 사이즈 구하기

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:\\");

댓글 없음:

댓글 쓰기