[VB-インターネット] [FTP] ファイルをダウンロードして保存する(WebRequest)
FtpWebRequestを使ってFTPからファイルをダウンロードする方法です。 FTPに接続可能なクラスはどれも泥臭い感じがするんですが、今回はこいつを使ってみます。 今回のサンプルソースは
Imports System.IO Imports System.Net
が宣言されている事を前提としたものです。
Dim address As Uri = New Uri("ftp://hostname/image.jpg") Dim WebReq As FtpWebRequest = TryCast(WebRequest.Create(address), FtpWebRequest) WebReq.Credentials = New NetworkCredential("USERNAME", "PASSWORD") WebReq.UseBinary = True ' DLするファイルは画像なのでバイナリモードを使用します WebReq.Method = "RETR" ' ファイルを取得するためのリクエスト ' サーバーからの応答を受信するWebResponseを取得 Dim WebRes As FtpWebResponse = TryCast(WebReq.GetResponse(), FtpWebResponse) ' データを受信するためのStreamを取得 Dim stream As Stream = WebRes.GetResponseStream() ' ファイルに書き込むためのFileStreamを作成 Dim fs As New FileStream("c:\image.jpg", FileMode.Create, FileAccess.Write) ' 応答ファイルを-1(EOF)が検出されるまでファイルに書き出す While True Dim b As Integer = stream.ReadByte() If b = -1 Then Exit While fs.WriteByte(Convert.ToByte(b)) End While ' FileStreamを閉じる(閉め忘れ厳禁!閉めないとDLしたファイルは開けません。) fs.Close()
FTPの接続には作法があるんですが、どれも合致しないのが難点です。 MS社自身も理解の上の事で、FTP接続を現在リリースされているクラスであるRequest Responseモデルに当てはめるのは非常に難しいとBlog上で語っています。 FtpClientクラスでも作ってくれればきれいにまとまるのではないかとは思いますが、、、 専用クラスではなく、Request Responseモデルを採用してリリースしている辺りを見て、お察しくださいって感じです。
「Visual Basic」に関する「本」の商品を自動的に表示しています。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
キーワードに関連していない商品は、Amazonがオススメする商品です。気になる物があればどうぞ。
作成日:2008年05月20日(Tue) / 更新日:2008年05月25日(Sun)