下载文件vb .NET时将问题编码到文件名中 [英] Encoding problem into filename when download file vb .NET

查看:76
本文介绍了下载文件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屋!

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