LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1206|回复: 3

在net::ftp中是否可以判断ftp服务器的登陆目录是否为终极目录

[复制链接]
发表于 2006-9-8 17:51:34 | 显示全部楼层 |阅读模式
如题,我的目的是想进入ftp登陆目录的终极目录下面将所有的文件取出来,但是我刚进入的目录不一定为终极目录,所以我要进行判断,请问用什么样的语句来进行判断进入的目录下面仍然是目录,还是普通文件,如果可以的话,麻烦给出语句,谢谢!
发表于 2006-9-9 04:04:31 | 显示全部楼层
perldoc Net::FTP 里边摘录。
用程序循环+判断吧。
       ls ( [ DIR ] )
           Get a directory listing of "DIR", or the current directory.

           In an array context, returns a list of lines returned from the server. In a scalar context, returns a reference to a list.

       dir ( [ DIR ] )
           Get a directory listing of "DIR", or the current directory in long format.

           In an array context, returns a list of lines returned from the server. In a scalar context, returns a reference to a list.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-11 09:13:31 | 显示全部楼层

谢谢

Post by 终极幻想
perldoc Net::FTP 里边摘录。
用程序循环+判断吧。

非常感谢:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-11 15:50:51 | 显示全部楼层
#!/usr/bin/perl -w
use strict;
use Net::FTP;

my $serverip = "192.168.4.11";
my $svrftpdir = "/home/ftptest";
my $svrftpgetdir = "$svrftpdir/get";
my $tmpcasedir = "/tmp/tmpcase";
main();

sub main
{
          do_ftpget();

}

sub do_ftpget
{
        chdir($tmpcasedir);
        my $ftp = Net::FTP->new("$serverip", Debug => 0)or die "Cannot connect to $serverip: $@";
        $ftp->login("ftptest",'123456')or die "Cannot login ", $ftp->message;
        $ftp->cwd("$svrftpgetdir") or die "Cannot change working directory ", $ftp->message;
        my @caseboxlist = $ftp->ls("$svrftpgetdir");
        foreach my $casebox(@caseboxlist)
                {
                chomp($casebox);
                        if(-d "$casebox")
                        {
                        $ftp->cwd("$casebox") or die "Cannot change working directory ",                                 $ftp->message;
                        my @caselist = $ftp->ls("$casebox");
                        print $casebox;
                        foreach my $casename(@caselist)
                                {
                                chomp($casename);
                                if(-d "$casename")
                                        {
                                        $ftp->cwd("$casename")or die "Cannot change working directory ",                                 $ftp->message;
                                my @getcaselist =$ftp->ls("$casename");
                                foreach my $getcasename(@getcaselist)
                                        {
                                        $ftp->get("$getcasename")or die "get failed ", $ftp->message;       
                                        }
                                        }
                                elsif(-f "$casename")
                                        {
                                        $ftp->get("$casename")or die "get failed ", $ftp->message;
                                        }

                                }
                        }
                        elsif(-f "$casebox")
                        {
                        $ftp->get("$casebox")or die "get failed ", $ftp->message;
                        }
                }
}

这是我的脚本,为什么还是get不到文件,请问错再哪里,谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表