[英]Why is a directory listing not working on my Windows system?
為什么下面的代碼不起作用?
-d
和-f
在Windows計算機上不起作用。
use strict;
use warnings;
use Data::Dump qw/pp/;
my $path="C:/perl/workspace";
opendir ( DIR, $path ) || die "Error in opening dir $path\n";
my (@file,@dir);
while (my $filename=readdir(DIR)) {
next if ($filename =~ m/^\./);
if (-f $filename) {
push(@file,$filename);
} elsif (-d $filename){
push(@dir,$filename);
}
}
#pp \@file,\@dir;
print "@dir";
檢查帶有路徑的文件,
if (-f "$path/$filename")
您應該在檢查$ filename是文件還是目錄之前將$ path添加到$ filename中,因為readdir僅返回不帶路徑的文件名。
...
if (-f $path."/".$filename) {
push(@file,$filename);
} elsif (-d $path."/".$filename){
push(@dir,$filename);
}
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.