Sonderzeichen bei einenn FTP Download

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Eierlein.

    Sonderzeichen bei einenn FTP Download

    hallo,
    Ich habe ein kleines Problem das ich nicht hinbekomme.

    Auf einen FTP Ordner will mehrere Dateien Downloaden.
    Dies klappt auch wunderbar, aber es gibt eine Datei auf den FTP Verzeichnis mit "ü"
    hier kommt es immer zu diesen Sonderzeichen "�". bei der ermittlngen des Namen.

    Konvertierung in UTF8,usw habe ich versucht, es ist immer das gleiche es ändert sich nur der String mit einen (?)

    So kommt es nach den Auslesen
    "Tour�bersicht_Vormonat_2017_09_08_144830.xlsx"

    Das ist das Orginal
    "Tourübersicht _Vormonat_2017_09_08_144830.xlsx"

    Hat jemand einen kleinen Tip für mich?


    VB.NET-Quellcode

    1. Sub Download()
    2. ' Prüfen wie viel Dateien da sind
    3. AnzahlFiles()
    4. If filesCount > 0 Then
    5. End If
    6. Dim i As Integer
    7. For i = 0 To filesCount
    8. Dim url As String = "ftp://XXX.XXX.XXX.XXX/Reports/"
    9. Dim credentials As NetworkCredential = New NetworkCredential("XXXXXXX", "XXXXX")
    10. Const localPath = "\\server3\Apps0002\Poeppel_Reports\"
    11. Dim listRequest As FtpWebRequest = CType(WebRequest.Create(url), FtpWebRequest)
    12. listRequest.Method = WebRequestMethods.Ftp.ListDirectory
    13. listRequest.Credentials = credentials
    14. Dim latest As String = Nothing
    15. Using listResponse As FtpWebResponse = CType(listRequest.GetResponse(), FtpWebResponse),
    16. listStream As Stream = listResponse.GetResponseStream(),
    17. listReader As StreamReader = New StreamReader(listStream)
    18. While Not listReader.EndOfStream
    19. Dim filename As String = listReader.ReadLine()
    20. If filename.Contains("Tou") Then
    21. Console.WriteLine("Found {0} ...", filename)
    22. If (latest Is Nothing) OrElse (latest < filename) Then
    23. latest = filename
    24. End If
    25. End If
    26. End While
    27. End Using


    Hier versuche den String zu konvertieren, Gibt es da einen Trick oder einen kleine Hilfe.
    Es wird aus den Zeichen "�" das Zeichen "(?)"



    VB.NET-Quellcode

    1. Dim b() As Byte = Encoding.Default.GetBytes(filename)
    2. Dim latest_new As String = Encoding.UTF8.GetString(b)
    3. MsgBox(latest_new)

    und der Rest...

    VB.NET-Quellcode

    1. If Not latest Is Nothing Then
    2. Console.WriteLine("Downloading {0} ...", latest)
    3. Dim webClient As New WebClient()
    4. webClient.Credentials = credentials
    5. webClient.DownloadFile(url + latest, Path.Combine(localPath, latest))
    6. ' Löschen der Datei
    7. Dim request As Net.FtpWebRequest = CType(Net.FtpWebRequest.Create("ftp://XXX.XXX.XXX.XXX/Reports/" & latest), FtpWebRequest)
    8. request.Method = Net.WebRequestMethods.Ftp.DeleteFile
    9. request.Credentials = New Net.NetworkCredential("XXXXXXXXX", "XXXXXXX")
    10. Dim response As Net.FtpWebResponse = CType(request.GetResponse(), FtpWebResponse)
    11. End If
    12. filesCount = filesCount - 1
    13. Next i
    14. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jnpanzer“ ()