求帮助,关于perl递归处理ftp 的问题 。。。
时间:2010-11-04
来源:互联网
本帖最后由 jiannma 于 2010-11-04 14:51 编辑
具体问题如下:
递归的列出ftp目录里面的文件,如果有子目录,进入它并把里面的文件列出来:
效果如下:
下面是我自己尝试写的脚本:
复制代码
在递归处理ftp目录下出现了问题, 不明白红色部分为什么不对呢?或者说怎能够正确递归目录呢?谢谢。。
具体问题如下:
递归的列出ftp目录里面的文件,如果有子目录,进入它并把里面的文件列出来:
效果如下:
QUOTE:
/dir1
/sub-dir1
test1
/dir2
/sub-dir2
test2
/dir3
/sub-dir3
test3
...
/sub-dir1
test1
/dir2
/sub-dir2
test2
/dir3
/sub-dir3
test3
...
下面是我自己尝试写的脚本:
- #!/usr/bin/perl
-
- use strict;
- use Net::FTP;
-
- my $host = "xxx.xxx.xx.xx";
- my $user = "test";
- my $pass = "xxx";
-
- print "Connecting to FTP Server ..."
-
- my $ftp = Net::FTP->new($host)
- or die "Cannot connect the ftp server";
-
- $ftp->login ("$user", "$pass")
- or die "Cannot login" , $ftp->message;
-
- print "Logged in ...";
-
- $ftp->cwd ("/");
-
- my @dirs = $ftp->ls ('-l');
-
- sub if _a_dir {
- my $dir = $_[0];
-
- if ($dir =~ m/^d/){
- [color=Red] $ftp->cwd("$dir") or die "Error"[/color];
-
- .... (未完成)
- }
-
- foreach my $sub_dir (@dirs){
- &if_a_dir ($sub_dir);
- }
-
- $ftp->quit();

作者: jiannma 发布时间: 2010-11-04
本帖最后由 zhlong8 于 2010-11-04 14:53 编辑
还真没看出来你的递归在哪
怎么判断是不是 dir 的?

怎么判断是不是 dir 的?
作者: zhlong8 发布时间: 2010-11-04
本帖最后由 jiannma 于 2010-11-04 14:56 编辑
回复 zhlong8
可能描述不清楚,思路是这样的, 就是首先列出ftp里面的目录列表,如:
dir1
dir2
dir3
然后分别进入其中,如果有子目录,然后再列出:
dir1/sub-dir1
dir2/sub-dir2
dir3/sub-dir3
最后列出子目录下面的文件:
dir1/sub-dir1/test1
dir2/sub-dir2/test2
dir3/sub-dir3/test3
回复 zhlong8
可能描述不清楚,思路是这样的, 就是首先列出ftp里面的目录列表,如:
dir1
dir2
dir3
然后分别进入其中,如果有子目录,然后再列出:
dir1/sub-dir1
dir2/sub-dir2
dir3/sub-dir3
最后列出子目录下面的文件:
dir1/sub-dir1/test1
dir2/sub-dir2/test2
dir3/sub-dir3/test3

作者: jiannma 发布时间: 2010-11-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28