簡體   English   中英

為什么目錄列表在Windows系統上不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM