无法访问已处置的对象。对象名:'System.Net.Sockets.NetworkStream [英] Cannot access a disposed object. Object name: 'System.Net.Sockets.NetworkStream

查看:747
本文介绍了无法访问已处置的对象。对象名:'System.Net.Sockets.NetworkStream的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从ftp服务器下载所有文件,它显示此错误



无法访问已处置的对象。对象名:'System.Net.Sockets.NetworkStream ..这是我的代码



i am trying to download all the files from the ftp server,it showing this error

Cannot access a disposed object. Object name: 'System.Net.Sockets.NetworkStream..and this is my code

Dim filepath As String = "D:\transfer"
       Dim ftp As FtpWebRequest = DirectCast(WebRequest.Create("ftp://611.161.182.215/RPT/"), FtpWebRequest)
       ftp.Method = WebRequestMethods.Ftp.ListDirectory
       Dim ftpFiles As New ArrayList()
       ftp.Credentials = New NetworkCredential("admin", "12345")
       ftp.KeepAlive = True
       Dim Response As FtpWebResponse = ftp.GetResponse()
       Dim responseStream As Stream = Response.GetResponseStream()
       Dim reader = New StreamReader(responseStream)
       While Not (reader.EndOfStream)
           ftpFiles.Add(reader.ReadLine())
           'ListBox1.Items.Add(ftpFiles.ToString())
       End While
       For Each file In ftpFiles
           Dim a As String = file
           ' ListBox1.Items.Add(file)
           Dim outputStream As New FileStream(filepath + "\" + a, FileMode.Create)

           Response = DirectCast(ftp.GetResponse(), FtpWebResponse)
           responseStream = Response.GetResponseStream()

           Dim cl As Long = Response.ContentLength
           Dim bufferSize As Integer = 2048
           Dim readCount As Integer
           'ftp.KeepAlive = True


           Dim buffer As Byte() = New Byte(bufferSize - 1) {}
           readCount = responseStream.Read(buffer, 0, bufferSize)
           While readCount > 0
               outputStream.Write(buffer, 0, readCount)
               readCount = responseStream.Read(buffer, 0, bufferSize)
           End While
           responseStream.Close()
           outputStream.Close()
           response.Close()
           MsgBox("success")
       Next

   End Sub

推荐答案

移动线:

Move the line:
response.Close()

在For循环之外...

outside the For loop...


这篇关于无法访问已处置的对象。对象名:'System.Net.Sockets.NetworkStream的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆