Copy Directory mit Pfaden in denen sich Umlaute befinden

  • VB.NET

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Genau. Bei

    VB.NET-Quellcode

    1. MsgBox("Fehler: " & vbCrLf & ex.Message)
    kann man nun wirklich nicht viel falsch machen, aber da ist schon alles zu spät.
    Übrigens:
    Try / Catch hilft Dir nicht bei der Fehlersuche, Try / Catch behindert die Fehlersuche :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    So, OptionStrictOn hab ich gemacht und
    ein paar Cstr musste ich einfügen, ansonsten keine Fehler,
    ausser von einem Fremden Code der dafür verantwortlich ist neue Laufwerke zu erkennen.

    Trotzdem bringt er mir das mit dem Illegalen Zeichen bei Zeile 6.


    Achso das Try Catch habe ich auch weggemacht.
    Aber wie bekommt man dann alle die Fehler eingefangen die
    man nicht abfängt?

    VB.NET-Quellcode

    1. Do While Zahler <> GesamtOrdner
    2. SicherungsItem = CStr(ListBoxSicherungsdaten.Items(Zahler))
    3. Dim Info As New System.IO.DirectoryInfo(SicherungsItem)
    4. AktuellerPfad = Speicherplatz & SpeicherDatumString & Info.Name
    5. My.Computer.FileSystem.CreateDirectory(AktuellerPfad)





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

    schorge schrieb:

    ein paar Cstr musste ich einfügen
    Mach da lieber ein ToString hin, das ist .NET.
    Und füge vor die Fehler-Zeile mal dies ein:

    VB.NET-Quellcode

    1. MessageBox.Show(SicherungsItem)
    Was wird im Fehlerfall da angezeigt?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ToString nimmt der nicht an und schlägt nur das Cstr vor :rolleyes:

    Bei der Textbox kommt ein einwandfreier Pfad raus:
    "C:\Users\Mein Name\Desktop\Daten\Bilder\"


    Hab noch etwas rausgefunden,
    wenn ich mir die Strings angucke macht er den ersten lisboxEintrag so:
    "C:\Users\blabla"
    den zweiten:
    " C:\Users\blabla" < wo dann das "Illegales Zeichen" kommt. Aber wiso macht er einfach bei dem zweiten EIntrag eine leerzeile davor?


    Bin nochmal ein Schritt weiter...

    Habe jetzt drei Ordner die zu kopieren waren:
    Bilder
    Jürgen
    test

    Bei dem ordner "test" kam der Fehler,
    nachdem ich den Ordner "test" in "Test" (großbuchstaben) geändert habe - funzt das ...
    wiso ???

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „schorge“ ()

    schorge schrieb:

    C:\Users\...
    ist ein Systempfad.
    Probier mal, den so vorzugeben, dann noch den Rest anhängen.

    VB.NET-Quellcode

    1. Dim path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    schorge schrieb:

    " C:\Users\blabla" < wo dann das "Illegales Zeichen" kommt. Aber wiso macht er einfach bei dem zweiten EIntrag eine leerzeile davor?
    Das ist doch die Lösung!!

    natürlich ist das Zeilvorschubzeichen in einer PfadAngabe illegal - hat also nix mit Umlauten zu tun.

    schorge schrieb:

    Aber wie bekommt man dann alle die Fehler eingefangen die
    man nicht abfängt?
    Wie du siehst: Niemals geht ein Fehler verloren - deine Sorge ist ganz unbegründet! :D
    Wie du ebenfalls siehst: ohne TryCatch bekommt man exorbitant bessere Debug-Möglichkeiten an die Hand, ohne welche der Fehler niemals gefunden worden wäre.

    TryCatch ist ein heißes Eisen