Re: [問題] ftp抓檔案的問題

看板Perl作者 (會走路的冰塊)時間17年前 (2007/06/22 14:14), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《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)

06/22 14:21, , 1F
推..
06/22 14:21, 1F
文章代碼(AID): #16UsYyw6 (Perl)
討論串 (同標題文章)
文章代碼(AID): #16UsYyw6 (Perl)