タイトル | : FTP転送について |
記事No | : 7613 |
投稿日 | : 2008/05/26(Mon) 16:56 |
投稿者 | : AMI |
Dim uri As String = "ftp://yahoo.jp/ABC.pdf" Dim myFile As String = "c:\aaaaaa.log" Dim myPath(50) As String
Dim req As WebRequest = WebRequest.Create(uri)
Button1.Enabled = False
req.Credentials = New NetworkCredential("userID", "PASS") req.Method = WebRequestMethods.Ftp.DownloadFile ' 省略可
Using res As WebResponse = req.GetResponse() Using st As Stream = res.GetResponseStream() Using fs As New FileStream("c:\1.log", FileMode.Create) Dim buf(1024) As Byte Dim count As Integer = 0 Do ' データ受信処理 'A count = st.Read(buf, 0, buf.Length) fs.Write(buf, 0, count) Loop While count <> 0 End Using End Using End Using
Using res As WebResponse = req.GetResponse() Using st As Stream = res.GetResponseStream() Using fs As New FileStream("c:\2.log", FileMode.Create) Dim buf(1024) As Byte Dim count As Integer = 0 Do ' データ受信処理 'AA count = st.Read(buf, 0, buf.Length) fs.Write(buf, 0, count) Loop While count1 <> 0 End Using End Using End Using
いまVB2005で開発を行っております。 FTP転送の件ですが、1件のファイルのダウンロードは成功したのですが、 連続して2個目3個目のファイルをダウンロードしようとして、 ロジックをくんだのですが、 'AA count = st.Read(buf, 0, buf.Length) ここの部分でエラーになります。 エラー内容は 「破棄されたオブジェクトにアクセスできません。 オブジェクト名 'System.Net.Sockets.NetworkStream' です。」 と表示されます。 おそらく、一回目で、オブジェクトをつかっているので、 開放して再度構築しないといけないとおもうのですが、 その方法がわかりません。 ちなみに上記ロジックはデバッグしやすいように書いてます。 実際にはFOR文でダウンロード回数分だけまわしてやろうとかんがえております。 アドバイスの程よろしくおねがいします。
|