【问题标题】:how do I list contents of local directory on ftp?如何在 ftp 上列出本地目录的内容?
【发布时间】:2015-01-16 21:05:41
【问题描述】:

我正在尝试通过 Perl 脚本将文件发送到远程主机。为此,我想列出本地目录,然后在使用以下命令遍历文件列表时选择要上传的文件:

my @files = '!ls'; does not work
my @files = 'lls'; does not work either

那我想做:

foreach my $file (@files) {
next if -d $file;
next unless $file =~ /^gateway_data/;
$ftp->put($file) or warn "Failed '$file': $! ($^E)";
}

除了上述两个之外,还有其他命令可以创建本地目录中的文件列表吗? 我们将不胜感激。

【问题讨论】:

    标签: perl ftp


    【解决方案1】:
    opendir(my $DIR, './') or die $!;
    my @files = readdir($DIR);
    foreach my $file (@files) {
        next if -d $file;
        next unless $file =~ /^gateway_data/;
        $ftp->put($file) or warn "Failed '$file': $! ($^E)";
    }
    

    这应该可行。

    【讨论】:

    • 非常感谢@ProfGhost,虽然我还没有尝试过,但我认为这绝对可以。
    • @mpapec 你能解释一下为什么你将文件句柄更改为变量吗?
    • Typeglob 比词法变量更容易出错; stackoverflow.com/a/3276771/223226 所以由于全球性,它应该首先本地化,即。 local *DIR; 这给代码增加了更多的噪音,并且对非经验丰富的 perl 程序员的理解更少。
    • 我可以确认这个解决方案对我来说效果很好。非常感谢。
    猜你喜欢
    • 2010-09-11
    • 2011-01-28
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2011-02-15
    相关资源
    最近更新 更多