Illegales Zeichen im Pfad

  • VB.NET

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

    Illegales Zeichen im Pfad

    Hallo,

    ich möchte in eine TXT schreiben. Den Pfad lese ich aus einer anderen TXT aus.

    ICh prüfe pb die Datei bereits besteht (in die ich schreiben will), Prüfe wie groß ist ist etc.


    Wenn ich den Pfaf aus der Textdatei kopiere und fest eingebe, dann funktioniert es ohne Probleme.
    Wenn ich stattdessen eine Variable nehme, dann wird der Fehler ausgegeben: Illegales Zeichen im Pfad

    Obwohl es der gleiche Pfad ist. Kann sich jemand vorstellen woran das liegt?


    VB.NET-Quellcode

    1. If File.Exists(slog) = True Then
    2. Dim logfile As New FileInfo(slog)
    3. If logfile.Length > logsize Then
    4. If File.Exists(slogold) = True Then
    5. File.Delete(slogold) ' löscht die alte .old
    6. File.Move(slog, slogold) ' benennt die .log in .old um
    7. Else ' eine .old exestiert nicht
    8. File.Move(slog, slogold) ' Datei umbennen von .log in .old
    9. End If
    10. End If
    11. End If
    12. ' LOG WIRD GESCHRIEBEN
    13. Dim fs As FileStream
    14. Dim sw As StreamWriter
    15. fs = New FileStream("C:\Users\Projekt\Desktop\testlog\test.log", FileMode.Append)
    16. sw = New StreamWriter(fs)
    17. sw.WriteLine(logtext)
    18. sw.Close()
    19. fs.Close()
    hallo philipp,

    dann wir deine variable eben NICHT den gleichen inhalt haben.
    vielleicht hast du ein nicht darstellbares zeichen drin - oder so.

    lass dir mal die länge des string ausgeben und vergleiche das mit der länge der fest codierten zeichenfolge.

    Tipp:
    schau dir mal das mit dem speichern an - kann man sicher einfacher schreiben.
    das using statement macht deinen code - datei schreiben - besser lesbar.

    gruss

    mikeb69
    Hallo,
    noch ein kurzer Hinweis.
    Statt dein pfad komplett auszuschreiben, könntest du es mit der Environment-Klasse versuchen.. Ich würds dir dringend empfehlen.

    VB.NET-Quellcode

    1. Dim pfad As String = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "test.log")

    oder

    VB.NET-Quellcode

    1. Dim pfad As String = IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.Desktop, "test.log")


    ist das gleiche wie

    VB.NET-Quellcode

    1. Dim pfad As String = "C:\Users\Projekt\Desktop\testlog\test.log"
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer