2013-12-09 3 views
1

Я могу загружать файлы с ftp-сервера (с подкаталогами) локально на моем ПК.Perl Net :: FTP скачать в определенный каталог

$f->get($file2); 

Файлы загружаются в рабочий каталог C:/wd, где я запускаю perl-скрипт. Я хотел бы загрузить файлы в другой каталог, например, C:/wd/sub или C:/другой. Я ценю любую помощь.

ответ

6

Если вы посмотрите на страницу документации Net::FTP, вы увидите, что get() принимает второй аргумент, определяющий местоположение, в котором будет сохранен файл.

Таким образом, вы бы просто сделать $f->get($file2,'C:/another/filename');

+0

Благодарим за помощь. Искренне, я прочитал документ, но я подумал, что он запрашивает имя файла, если имя должно быть изменением файла («LOCAL_FILE может быть именем файла или файловой машиной»). Я пока не думал добавить путь. – giordano

1

Как правильно состояние, файлы загружаются в текущем рабочем каталоге, так что просто ChDir(), прежде чем вы получите(). Я имею в виду локально и не имеет ничего общего с Net :: FTP. Например.

chdir "/tmp"; 
$f->get(...); 
0

Это сработало для меня. Net :: FTP get принимает дескриптор файла как LOCAL_FILE.

use Path::Tiny; #for path 
my $local_file = path($out_dir, $file); 
open my $local_fh, ">", $local_file or die "Can't write to $local_file:$!"; 
$ftp->get($file, $local_fh); 
Смежные вопросы