如何使用perl从FTP服务器下载文件夹/目录?

Mad*_*han 1 perl

我在FTP serever中有一系列文件夹.举个例子,

@ftp_dirs=('/Tarun/Netdomais','/Tarun/Testing','/Tarun/Tested_files')
Run Code Online (Sandbox Code Playgroud)

我需要将数组中的每个文件夹从FTP服务器下载到本地文件夹(c:\ ftp_downloaded).

我写了以下几行

use strict;
use Net::FTP;


my $ftp=Net::FTP->new("hostname",Debug=>0);
$ftp->login("user_name","password");
$ftp->cwd("/Tarun");

my @ftp_dirs=('/Tarun/Netdomais','/Tarun/Testing','/Tarun/Tested_files');
my $local='c:\ftp_downloaded';

foreach my $ftp_folder(@ftp_dirs){
  $ftp->get($ftp_folder,$local);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用.因为get方法仅适用于从ftp而不是文件夹下载文件.

是否可以从ftp下载文件夹?

Tud*_*tin 5

首先,使用以下命令启动所有perl脚本:

use strict;
use warnings;
Run Code Online (Sandbox Code Playgroud)

其次,你错过了一个;后续行:

my @ftp_dirs=('/Tarun/Netdomais','/Tarun/Testing','/Tarun/Tested_files')
Run Code Online (Sandbox Code Playgroud)

第三,我认为您可以尝试使用from command继承的方法并发出ftp 命令,或者模拟以下内容:Net::FTPNet::Cmdmgetmget

$ftp->get($_) for grep { 1 } $ftp->ls;
Run Code Online (Sandbox Code Playgroud)