【发布时间】:2012-02-09 16:21:38
【问题描述】:
我正在使用 readdir 方法将文件列表从目录读取到数组。我可以知道如何读取零大小的文件,因为 readdir 只会读取非零文件。我也想读取空文件(将文件名捕获为存在,即使它是空的)。我可以知道该怎么做吗?以下是我从目录中读取文件的方式:-
opendir (FH, $dirs) || die $! ;
my @lines = readdir (FH) ;
closedir (FH) ;
提前谢谢你。
【问题讨论】:
-
您的代码对我来说很好,并且包含空文件的名称。请发布更多关于什么不适合你的信息。
-
“readdir 只会读取非零文件”不是真的。
readdir将读取所有文件名,无论大小。您可以使用perl -lwe 'opendir F,"." or die $!; while (readdir F) { print unless -s }'进行尝试,其中unless -s的意思是“如果大小!= 0”。 -
Re "readdir 只会读取非零文件",
readdir不读取文件,并且它不会根据文件的长度(或任何其他因素)过滤它返回的文件. -
您好 Greg Hewgill、TLP 以及所有花时间帮助我解决这个问题的人。我做了一个小脚本来测试readdir,它确实捕获了零内容文件。它能够读取空文件,确实是我的另一部分代码错误:(。对不起,我下次应该更加小心。你们所有人的帮助很大!再次感谢!
标签: perl