下载文件vb .NET时将问题编码到文件名中 [英] Encoding problem into filename when download file vb .NET
本文介绍了下载文件vb .NET时将问题编码到文件名中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您好
我需要从我的vb .NET项目中的ftp站点下载文件。
我使用Net.FtpWebRequest命名空间。
下载文件名后显示错误:
%EMON%EMON %% ACCEPTED% 39 fea100808rk1oo000dr9qo.XML
当我删除 39 在文件名中一切正常。也许39回车...
请帮帮我...我能做些什么来解决这个问题。
谢谢
Hello
I need download file from ftp site in my vb .NET Project.
I use Net.FtpWebRequest namespace.
When downloding following filename show error :
%EMON%EMON%%ACCEPTED%39fea100808rk1oo000dr9qo.XML
When I delete 39 in filename everything is OK. Maybe 39 as carriage return ...
Please help me ... What can I do for correct this problem.
Thanks
推荐答案
Public Sub DownloadEachFile()
如果ftpPortNo> 0然后
ftpAdres =ftp://&ftpAdres&:&ftpPortNo&/
Else
ftpAdres = ftp://&ftpAdres&/
结束如果
Dim fwr As Net.FtpWebRequest = Net.FtpWebRequest.Create( ftpAdres)
fwr.Credentials = New NetworkCredential(ftpKullanıcıAdı.Trim,ftpŞifre.Trim)
fwr.KeepAlive = True
fwr.Method = WebRequestMethods.Ftp.ListDirectory
fwr.Proxy = Nothing
试试
Dim sr As New IO.StreamReader(fwr.GetResponse()。GetResponseStream())
Dim lst = sr.ReadToEnd()。Split(vbNewLine)
For Each文件作为字符串在lst
file = file.Trim()'删除任何空格
Dim LFile As String =YerelDosyaAdı(file.Trim )
如果是文件=..OrElse file =。然后继续为
Dim fwr2 As Net.FtpWebRequest = Net.FtpWebRequest.Create(ftpAdres&file.Trim)
fwr2.Credentials = fwr.Credentials
fwr2.KeepAlive = True
fwr2.Method = WebRequestMethods.Ftp.DownloadFile
fwr2.Proxy = Nothing
尝试
使用FtpResponse作为FtpWebResponse = CType(fwr2.GetResponse,FtpWebResponse)
使用ResponseStream作为IO.Stream = FtpResponse.GetResponseStream
使用fs作为新的IO.FileStream(C:\COSTOMERDB \&LFile.Trim,FileMode.Create)
Dim buffer(2047)As Byte
Dim读为整数= 0
请
read = ResponseStream .Read(buffer,0,buffer.Length)
fs.Write(缓冲区,0,读取)
循环直到读取= 0
ResponseStream.Close()
fs.Flush()
fs.Close()
结束使用
ResponseStream.Close()
结束使用
结束使用
Catch
结束尝试
下一页
sr.Close()
Catch ex As Exception
End尝试
End Sub
Public Sub DownloadEachFile()
If ftpPortNo > 0 Then
ftpAdres = "ftp://" & ftpAdres & ":" & ftpPortNo & "/"
Else
ftpAdres = "ftp://" & ftpAdres & "/"
End If
Dim fwr As Net.FtpWebRequest = Net.FtpWebRequest.Create(ftpAdres)
fwr.Credentials = New NetworkCredential(ftpKullanıcıAdı.Trim, ftpŞifre.Trim)
fwr.KeepAlive = True
fwr.Method = WebRequestMethods.Ftp.ListDirectory
fwr.Proxy = Nothing
Try
Dim sr As New IO.StreamReader(fwr.GetResponse().GetResponseStream())
Dim lst = sr.ReadToEnd().Split(vbNewLine)
For Each file As String In lst
file = file.Trim() 'remove any whitespace
Dim LFile As String = YerelDosyaAdı(file.Trim)
If file = ".." OrElse file = "." Then Continue For
Dim fwr2 As Net.FtpWebRequest = Net.FtpWebRequest.Create(ftpAdres & file.Trim)
fwr2.Credentials = fwr.Credentials
fwr2.KeepAlive = True
fwr2.Method = WebRequestMethods.Ftp.DownloadFile
fwr2.Proxy = Nothing
Try
Using FtpResponse As FtpWebResponse = CType(fwr2.GetResponse, FtpWebResponse)
Using ResponseStream As IO.Stream = FtpResponse.GetResponseStream
Using fs As New IO.FileStream("C:\COSTOMERDB\" & LFile.Trim, FileMode.Create)
Dim buffer(2047) As Byte
Dim read As Integer = 0
Do
read = ResponseStream.Read(buffer, 0, buffer.Length)
fs.Write(buffer, 0, read)
Loop Until read = 0
ResponseStream.Close()
fs.Flush()
fs.Close()
End Using
ResponseStream.Close()
End Using
End Using
Catch
End Try
Next
sr.Close()
Catch ex As Exception
End Try
End Sub
这篇关于下载文件vb .NET时将问题编码到文件名中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文