作者WalkingIce (会走路的冰块)
看板perl
标题Re: [问题] ftp抓档案的问题
时间Fri Jun 22 14:14:18 2007
※ 引述《handsomegirl (薰)》之铭言:
: : use Net::FTP;
: : open (FILE, ">*.txt");
: : $ftp = Net::FTP->new("1xx.1xx.xx.xx",Debug => 1,Timeout => 6000) or die "Can't connect: $@\n";
: : $ftp->login("user", "pass");
: : @lines = $ftp->ls("/home/test");
: 试了一下,大概是我这边目录设错了
: 少了一个路径值
: 所以抓不到档案
: 然後斜线要变成两条反斜线
: \\home\\test
只有一个斜线会变跳脱字元
「\t」会被解释成「Tab」
: 现在目录找到了 却没有任何档案在我的资料夹里面
: 问题多多啊~
: : foreach $file(@lines){
: : $ftp->get("/home/test/*.txt", "c:\\Perl\\test\\*.txt") or die "can't get file\n";
: : print FILE "*.c\n";
: : }
抱歉,我没有用过 Net::FTP,纯粹用猜测的
不清楚 get 有没有支援「*」这个万用字元
如果有支援的话,这段程式码应该会把相同的档案重复抓很多次吧
试试看改成
foreach $file(@lines) {
$ftp->get("/home/test/$file","c:\\Perl\\test\\$file") or die "Orz";
}
因为从上一行程式码来看: @lines = $ftp->ls("/home/test");
@lines 里面放的应该是所有档名呀!
: : 问题2.怎麽样可以筛选有更新的档案,并且固定在每天早上七点执行?
: : 最近刚好做个系统,问题有点多,先谢谢了
如果执行环境是 Unix-like,可以丢到 crontab 里面去跑
如果是 Windows 的话....我就不知道了 :P
话说「档案更新」的部份,或许可以从档案时间里面去判断
FTP server 应该是 Unix-like 吧?
LinuxDev 板有个「关於file time」的讨论串可以参考看看。
--
我想你会衰成这样都是我害的
---- Tizzy Mac
紧张的麦金塔?这是谁(._.?)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.128.98.6
※ 编辑: WalkingIce 来自: 140.128.98.6 (06/22 14:15)
1F:推 abliou:推.. 06/22 14:21