DOWNLOAD DE UM FTP
galera, tenho um código do macoratti pra baixar um arquivo .txt de um ftp.
só que ao baixar o arquivo ele substitui o ç, e todas as letras com acento por [Ô]?[Ô].
Alguém poderia me ajudar a corrigir isso?
p.s: usando o file zila ele baixa o arquivo em perfeitas condições.
Grato!!!
segue o código:
Imports System
Imports System.Net
Imports System.IO
Imports System.Text
Public Class Form1
Private Sub descarregarArquivo(ByVal arquivoFTP As String, _
ByVal usuario As String, ByVal senha As String, _
ByVal dirLocal As String)
Dim dirFtp As FtpWebRequest = CType(FtpWebRequest.Create(arquivoFTP), FtpWebRequest)
[ô] credenciais do usuário
Dim credenciais As New NetworkCredential(usuario, senha)
dirFtp.Credentials = credenciais
[ô] comando para executar usando a enumeração de WebRequestMethods.Ftp
dirFtp.Method = WebRequestMethods.Ftp.DownloadFile
[ô] Obtem resultado do comando
Dim reader As New StreamReader(dirFtp.GetResponse().GetResponseStream())
[ô] Ler o stream (o conteudo do arquivo)
Dim resultado As String = reader.ReadToEnd()
[ô] Mostrar
[ô]exibeArquivo(resultado)
[ô] Guardar localmente com a extensão .txt
Dim ficLocal As String = Path.Combine(dirLocal, Path.GetFileName(arquivoFTP) & [Ô].txt[Ô])
Dim sw As New StreamWriter(ficLocal, False, Encoding.Default)
sw.Write(resultado)
sw.Close()
[ô] Fecha o stream aberto
reader.Close()
End Sub
só que ao baixar o arquivo ele substitui o ç, e todas as letras com acento por [Ô]?[Ô].
Alguém poderia me ajudar a corrigir isso?
p.s: usando o file zila ele baixa o arquivo em perfeitas condições.
Grato!!!
segue o código:
Imports System
Imports System.Net
Imports System.IO
Imports System.Text
Public Class Form1
Private Sub descarregarArquivo(ByVal arquivoFTP As String, _
ByVal usuario As String, ByVal senha As String, _
ByVal dirLocal As String)
Dim dirFtp As FtpWebRequest = CType(FtpWebRequest.Create(arquivoFTP), FtpWebRequest)
[ô] credenciais do usuário
Dim credenciais As New NetworkCredential(usuario, senha)
dirFtp.Credentials = credenciais
[ô] comando para executar usando a enumeração de WebRequestMethods.Ftp
dirFtp.Method = WebRequestMethods.Ftp.DownloadFile
[ô] Obtem resultado do comando
Dim reader As New StreamReader(dirFtp.GetResponse().GetResponseStream())
[ô] Ler o stream (o conteudo do arquivo)
Dim resultado As String = reader.ReadToEnd()
[ô] Mostrar
[ô]exibeArquivo(resultado)
[ô] Guardar localmente com a extensão .txt
Dim ficLocal As String = Path.Combine(dirLocal, Path.GetFileName(arquivoFTP) & [Ô].txt[Ô])
Dim sw As New StreamWriter(ficLocal, False, Encoding.Default)
sw.Write(resultado)
sw.Close()
[ô] Fecha o stream aberto
reader.Close()
End Sub
Isso acontece por causa da codificação, que não é no WebRequest, mas sim no StreamWriter. Já sei, já sei, [Ô]pode me dar um exemplo[Ô], você está pensando. Não vou colocar código, porque quero que você realmente entenda o que está acontecendo. Procure no seu código, onde você instancia um [Ô]StreamWriter[Ô], veja nele o que diz sobre codificação, ou [Ô]encoding[Ô]...
Vi em muitos sites colocar UTF8 ou unicode, mas não funcionou...
Citação::
Vi em muitos sites colocar UTF8 ou unicode, mas não funcionou...
Então, [Ô]Encoding.UTF8[Ô] era pra funcionar...
Agora deu td certo. Obrigado, pessoal...
Tópico encerrado , respostas não são mais permitidas