无法访问已处置的对象。对象名:'System.Net.Sockets.NetworkStream [英] Cannot access a disposed object. Object name: 'System.Net.Sockets.NetworkStream
本文介绍了无法访问已处置的对象。对象名:'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屋!
查看全文