Rubyでしょっちゅー忘れるコトのメモ
require "net/ftp"; ftp= Net::FTP.new; ftp.connect("192.168.xxx.xxx"); ftp.login; ftp.passive= true; ftp.chdir("sataraid1/disk1/..."); ftp.nlst; # 文字列配列が返る
あとは
URI.encode(STRING)
とかも覚えておくと便利.
ARGV[0] : プロンプトで入力された引数一個目から $0 : コマンド名も拾える(Cの**argvと同じ)
1.upto(33){| x | hex= format("%02x", x); dec= format("%02d", x); puts "http://sample.com/" + dec + "_" + hex + ".jpg"; }
require "open-uri"; require "net/http"; prefix= ""; baseURLlist= [ ]; baseDomain= "www.masterbloodfer.org"; 0.upto(baseURLlist.length - 1){|i| url= baseURLlist[i]; # ディレクトリの存在チェック # ダウンロード先ファイルパス生成 outdir= url.split("/"); outdir= outdir[outdir.length - 2]; outdir= prefix + "/" + outdir; if(FileTest.exist?(outdir) == false) # ディレクトリ生成 Dir::mkdir(outdir); Net::HTTP.start(baseDomain, 80) {|http| response= http.get( url.sub("http://" + baseDomain, "") ); response.body.each_line{ |line| filenum= line.scan(/>.+\.jpg</); if(filenum.length > 0) # jpgファイル名を指定している行 filenum= filenum[0]; filenum= filenum.slice(1, filenum.length-2); filenum= filenum.gsub(" ", "%20"); imgurl= url.sub(/\/index\.html$/, "/" + filenum); imgurl= imgurl.sub("http://" + baseDomain, ""); puts imgurl; # ダウンロード処理 File.open(outdir + "/" + filenum,"wb") do |f| f.print http.get(imgurl).body end end } } else # 既にディレクトリがあるとき puts outdir + " already exist"; end }