下面是使用 File::stat
查找文件大小的 Perl 脚本模块:
#!/usr/bin/perl
use strict;
use warnings;
use File::stat;
my $directory = "/home/dinkar/index.html";
my $dirStats = stat($directory);
my $size = $dirStats->size;
printf("Size of %s: %d", $directory, $size);
printf("\n");
我得到了正确的文件大小输出,但此代码无法找到文件夹大小。它只计算文件夹内的文件数。例如,如果文件夹 /home/dinkar
中有八个文件,我得到的文件夹输出为 8,这是错误的。
我想在 Perl 中使用 File::stat 模块
查找文件夹大小。请帮忙。
最佳答案
File::stat
模块只不过是内置 stat
运算符的更易于访问的接口(interface)。由于 stat
不提供检索目录“大小”的方法,File::stat
也不提供。
目录大小的意思是它包含的所有文件的大小的总和,或者递归在它下面的目录中的所有文件的大小的总和。你必须手动计算,最好的工具可能是 File::Find
.
这个程序演示
use strict;
use warnings;
use 5.010;
use File::Find;
my $total;
find(sub { $total += -s if -f }, '/home/dinkar');
say $total;
如果要测量的文件很多,那么这可能需要几秒钟才能完成。
关于linux - 如何使用 File::stat 模块在 Perl 中查找文件夹大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341724/