vb.net中循环获取文件大小后无法下载文件的问题
Dim p_name() As String = Strings.Split(ssss, "|") Dim p_zth() As String = Strings.Split(s_zth, "|") For i = 0 To p_zth.Length - 2 Dim ss As String = "D:\uback\" & p_zth(i) fpath = "D:\uback\" & p_zth(i) & "\ufdata.ba_" j = 0 '检查路径是否存在,不存在则新建 If System.IO.Directory.Exists(ss) = False Then System.IO.Directory.CreateDirectory(ss) End If If System.IO.File.Exists(fpath) = False Then ''------------------------------------------------------------开始获取文件大小 zt.Text = "正在获取文件大小..." TextBox1.Text = p_name(i) 'Dim th As WebRequest = WebRequest.Create(p_name(i)) 'Dim w As WebResponse = th.GetResponse() 'j = w.ContentLength().ToString 'th = Nothing 'w = Nothing Label1.Text = "文件大小:" & danwei(j) Label4.Text = "保存路径:" & fpath zt.Text = "开始下载文件..." ''------------------------------------------------------------开始下载远程文件 ''定时器开始 Dim myIn As New MyInvoke(AddressOf jishikaishi) Me.BeginInvoke(myIn) Try Dim dfile As New WebClient dfile.DownloadFile(New Uri(p_name(i)), fpath) '下载指定nrl地址的文件 dfile.Dispose() dfile = Nothing Catch ex As Exception MsgBox(ex.Message) Exit Sub End Try '下载完成,将已下载设置为全部 Label2.Text = "已经下载:" & danwei(j) '设置进度条为100 ProgressBar1.Value = 100 '输出下载完成提示 Dim tishi As String = "文件下载结束,共用时 " & miao & " 秒,平均速度:" '& danwei(j / miao) & "/S" zt.Text = tishi '定时器结束 Dim myIns As New MyInvoke(AddressOf jishijieshu) Me.BeginInvoke(myIns) Label3.Text = "下载完成,平均 " ' & danwei(j / miao) & "/S" End If Next
执行后第一次获取文件大小正常,文件下载正常,第二次时获取文件大小正常,无法下载文件,下载的文件大小为0,如果只使用下载文件的那部分代码
Dim dfile As New WebClient
dfile.DownloadFile(New Uri(p_name(i)), fpath) '下载指定nrl地址的文件
dfile.Dispose()
dfile = Nothing
那么可以正常下载所有的文件,请教一下获取文件大小的那一部分是什么问题呀,导致无法下载.谢谢
问题解决了,Dim w As WebResponse = th.GetResponse()
使用后需要关闭,w.close(),再一次证明细节很重要.