【发布时间】:2023-03-12 19:15:01
【问题描述】:
我正在尝试 FTP 一个目录,该目录具有使用 Perl 的文件和图像的子目录。
我尝试在Net::FTP::Recursive 下使用$ftp->rput()。但这会上传本地当前工作目录下的所有文件。
有没有办法给出本地目录的路径以及上传所有文件夹和文件。请指导。
【问题讨论】:
我正在尝试 FTP 一个目录,该目录具有使用 Perl 的文件和图像的子目录。
我尝试在Net::FTP::Recursive 下使用$ftp->rput()。但这会上传本地当前工作目录下的所有文件。
有没有办法给出本地目录的路径以及上传所有文件夹和文件。请指导。
【问题讨论】:
您需要临时更改自己的工作目录。
rput ( [FlattenTree => 1] [,RemoveLocalFiles => 1] )递归放置 方法调用。这将递归地发送本地当前工作 目录及其内容到 ftp 对象的当前工作 目录。
Perl 的builtin chdir 可用于更改目录。如果您需要返回,请使用Cwd module 获取当前的。
use strict;
use warnings;
use Cwd;
use Net::FTP::Recursive;
# ...
# get the current directory
my $old_current_dir = getcwd();
# change directory to the one you want to upload
chdir('path/to/updloaddir');
# upload
$ftp->rput();
# change back
chdir($old_current_dir);
【讨论】: