Nicht ganzen Pfad anzeigen sondern nur Ordner bzw Datei... (bei Application.StartupPath)

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von freecoder.

    Nicht ganzen Pfad anzeigen sondern nur Ordner bzw Datei... (bei Application.StartupPath)

    Hallo,
    ich bin ganz neu hier und versuche mich z.z. in kleinen programmen. (die z.b. was ausrechnen)
    ich benutze wenn ich auf einen bestimmten ordner zugreifen will immer (application.startuppath & "\"),
    mein problem ist nun wenn ich den ordner (manchmal auch datei) anzeigen lassen möchte wird immer der gesamte pfad angezeigt, aber ich möchte ja nur das der ordner (bzw. die datei angezeigt wird).
    wie kann man das umsetzen???
    hoffe ihr könnt mir hier weiterhelfen...
    mfg homer'os
    Mit

    VB.NET-Quellcode

    1. my.computer.filesystem.getfilename("Pfad")


    kannst du den Dateinamen aus dem Pfad herausholen. Und wenn du nur den Ordner willst, kannst du ja mit der replace-funktion den Dateinamen einfach rauslöschen.
    ok... klappt natürlich bei mir nicht. X(
    wie würde es den aussehen wenn ich z.b. in der list box 1 die ganzen adressen stehen habe und in listbox2 dann halt nur noch noch die ordner?
    ich hätte das den so geschrieben (was leider falsch ist...)

    VB.NET-Quellcode

    1. ListBox2 = My.Computer.FileSystem.GetDirectories(ListBox1)

    listbox1 wird unterstrichen und der fehler [Der Wert vom Typ "System.Windows.Forms.ListBox" kann nicht in "String" konvertiert werden.] kommt. X(
    ich rate dir dringend, ein buch zu lesen bzw. dich mal mit den Grundlagen vertraut zu machen.

    natürlich geht dein code nicht, weil man 1. mit

    VB.NET-Quellcode

    1. ListBox2 = ...
    keine neuen Items hinzufügt, sondern mit

    VB.NET-Quellcode

    1. ListBox2.Items.Add
    oder

    VB.NET-Quellcode

    1. ListBox2.Items.AddRange
    Und

    VB.NET-Quellcode

    1. ..GetDirectories(ListBox1)
    ; das ListBox1 bezieht sich ja dann auf das Control, du willst aber die Items auslesen.

    Du musst das Ganze in einer Schleife machen:

    VB.NET-Quellcode

    1. Dim i as integer=0 'Der Zähler
    2. for each str as string in listbox1.items 'Für jeden Eintrag in ListBox1
    3. listbox2.items.add(My.Computer.FileSystem.GetDirectories(ListBox1.Items(i))
    4. i+=1 'Den Zähler immer um 1 erhöhen
    5. next


    ungetestet; sollte aber gehen.