Ordner Struktur nutzen(2008/2010)

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.

    Ordner Struktur nutzen(2008/2010)

    hallo,
    ich bin es mal wieder.ich möchte,die windows ordner struktur nachbilden.
    1.Gibt es ein Tool oder element ,womit man die ordner mit windows designe(keine liste,das hatteich schon mal) anzeigen zu lassen?.
    2.gibt es die möglichkeit, ein rechtsklick menü zu erstellen?(für kopieren,einfügen etc...)

    ich freue mich für jede noch so kleine antwort(ich erwarte keinen code :thumbup: )

    mfg robin b.
    Möchtest du den Windows-Explorer klonen?

    Dazu brauchste nur einen horizontal eingestellten SplitContainer, links eine TreeView und rechts eine ListView rein. Für die ListView noch ein ContextMenu mit deinen Befehlen - Fertig.
    Und den MenuStrip und StatusStrip darfst du bei einem Klon natürlich nicht vergessen ;)

    MfG,
    X-Zat / Momo
    ha ,ich weis ich sagte einfach aber was mus ich nun tuhen?mus ich den befehl treeview1.path(oder url) = (beispiel:/) ?
    oder kommtda was verzweigtes hin und gibts sowas nit au standart habe etwas bei net elementen das nennt sich filelyst nur der macht auch nur files keine ordner und natürlich in einer liste .ich möchte es richtig mit icons allerdings wenn man auf eine txt klickt soll der das in meiner form in eins importieren(aber das is erstmal unwichtig)

    Robin (Black-Knight) schrieb:

    so einfach geht das vielen vielen dank wow ihr seid klasse

    THX

    ja das sind die Controlls^^ Jetzt kommt die Arbeit. Viel Spaß aber ohne Grundlagen haste sicher keinen fertigen Explorer. In Visual Basic musste so oder so fast nie viel machen weils für alles ne Klasse,Funktion usw. gibt. Aber die muss man dann aber doch noch verwenden :)

    Außerdem meinst du wohl den Filewatcher oder? oder wie auch immer das heißt. Das ist aber sicher kein fertiger Explorer. Das ist zum Überwachen von Ordnern/Dateien ( wenn mich nicht alles täuscht ) sprich wenn irgendwo etwas verändert wird löst er ein event mit dem Pfad aus.


    Außerdem wenn du deine Controls füllen willst musst du wohl System.IO bzw System.IO.Dictory anschauen. Da kannste dann zb GetFiles verwenden(weiß nicht ob genau so heißt musste nachschauen) und dann eben jede Datei in die Listview eintragen und von mir aus noch das icon extrahieren um es zu verwenden usw.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Tja "einfach" ist das Gesamtvorhaben nicht. Das Prinzip in Hinsicht auf Zusammenstellung der Controls schon.

    Jetzt brauchste noch den Code, und da kann ich dir folgendes empfehlen:

    Bastel dir eine Funktion, mit der du Ordner auflisten kannst oder nutze den VB-Standard ("GetDirectories", irgendwo in System.IO), du kannst dazu auch meinen Code nehmen ([VB.NET] Rekursiv alle Dateien eines Ordners inkl. Unterordner erfassen) und anpassen.

    1. Die TreeView mit den Ordnern befüllen (For Each Ordner In GetDirectory(Laufwerk/Quelle) TreeView.Nodes.Add(Ordner)...)
    2. Bei Klick auf einen dieser Nodes (= engl für Knoten) der Listview:
    2.1. Dem Knoten zugehörige Unterordner Hinzufügen (For Each Ordner In GetDirectory(Laufwerk/Quelle UND Knoten-Name) TreeView.Nodes.Item(Knoten).Items.Add(Ordner))
    2.2. Der ListView alle Dateien (und Ordner) des Knotens hinzufügen (For Each Datei GetFiles(Laufwerk/Quelle UND Knoten-Name) ListView1.Items.Add(Datei))

    Nein, der Code oben stimmt bestimmt nicht 100%, da ich längere Zeit nicht mehr mit TreeViews gearbeitet habe und Ja, man kann das ganze bestimmt performanter und geschickter lösen. Aber das hier ist schon einmal ein Ansatz!
    Ganz wichtig: Lerne vorher die Grundlagen, damit du uns nicht zu jedem Wort befragen musst, was es denn wohl bedeutet!

    MfG,
    X-Zat / Momo
    Ich habe sowas ähnliches selber schon mal gemacht und muss sagen bis es läuft braucht es nicht viel, sofern die Grundlagen da sind. JEDOCH das Problem bei der ganzen Sache ist du wirst schnell merken, das Zeug ist nicht so schnell wie du es dir erhoffst. Deshalb musst du schauen wie man es schneller machen kann und das wird Arbeit genug. Und das was eigentlich wirklich Zeit frisst ist Sachen wie Bilder,Icons anzeigen. Das kostet teilweise extremst Zeit und je nach viel Dateien da drinnen sind gehts ewig. Deshalb musst du das so ähnlich wie Windows-Explorer machen:

    Soweit ich das oberflächlich gesehen habe lädt er als erstes Dateien mit Text und einfach einem Standart Icon(pack das einfach in Resourcen). Das braucht noch nicht viel Leistung. Dann wenn er das hat geht er zuerst mal durch und fügt die Icons für z.B JPG, MEPG3, WAV usw ein.
    Und erst dann fängt er an die Bilder zu laden z.B. die JPGs als Icons zu laden von den MP3s die Bilder aus dem Header zu extrahieren, die Daten auslesen und in den nächsten Spalten einzutragen....

    Von dem her musst du dir das recht gut überlegen und auch sicher etwas durchplanen was bei dir nicht den Eindruckt macht als ob du das vor hättest. Denn du bist mehr der Typ gibts schon nen fertiges Controll? Sprich meinen in vb gehts immer ganz leicht alles. Ja stimmt es geht vieles vereinfacht. Jedoch ist es noch immer programmieren und deshalb würd ich mir grad bei sowas als erstes wie ich oben ein Beispiel gemacht hab überlegen wie geht ich denn das ganze an. Wie soll das ablaufen?


    Also hoffe ich konnte dir noch nen kleinen Denkanstoß geben und wünsch dir noch viel Spaß :)


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Hallo,
    ich habe hier einen code der tut es auch nur naja ich möchte weiter arbeiten und euch fragen wie ihr das machen würdet.

    VB.NET-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. If Directory.Exists(link1.Text) Then 'link1 = listbox
    3. Directory.SetCurrentDirectory(link1.Text)
    4. Dim l As List(Of String) = New List(Of String)
    5. For Each ordner As String In My.Computer.FileSystem.GetDirectories(link1.Text)
    6. l.Add(ordner)
    7. Me.ordner1.Items.Add(ordner)'ordner1 ist die listbox
    8. Next
    9. Else
    10. Label1.Text = ("Der Link ist nicht vorhanden") 'ist nur das was passiert wenn der link nicht existiert
    11. Label1.Visible = True
    12. labeltimer1.Enabled = True
    13. End If
    14. End Sub

    So ich möchte jetzt machen, wenn es keine datei ist, sondern ein ordner, soll er ihn öffnen. Würdet ihr sagen das man sagt dir 4 stelle von hinten wenn das kein punkt ist dann passiert das und das oder wie? dann noch eine frage bsp .txt wie kann ich sage was sind die letzten 4 buchstaben des textes? also

    if(letzte 4 buchstaben des textes sind .txt) then
    (text des textbox eintrags) = link1.text
    end if


    mfg robin(ich hoffe dieses mal versteht ihr mich .Ich bin deutscher aber habe meine probleme mit rechtschreibung und zeichensetzung danke für euer verständnis )

    PS: DIe Icons sind erstmal das unwichtigste.:)
    Ok, im Punkt Rechtschreibung und Zeichensetzung haste schonmal recht, aber ich glaube, du meinst das:

    Es wird zuerst folgendes gemacht:

    Wenn das gewünschte Dir existiert, werden alle Unterordner des Dir's in eine Liste und eine Listbox geschrieben.

    Nun soll aber geprüft werden, ob es eine Datei sein kann... Dazu einfach abfragen: Wenn das Directory "Name" existert, dann, sonst: Wenn die Datei "Name" existert, dann, sonst: Fehler.

    Also:

    VB.NET-Quellcode

    1. If Ordner existert
    2. 'Aktion
    3. Else
    4. If Datei existiert
    5. 'Aktion
    6. Else
    7. 'Fehler
    8. End If
    9. End If


    Und wenn du die Datei öffnen möchtest, lass die Datei doch einfach mit der Process-Klasse starten. Dazu findest du im Netz und hier sehr viele Infos (habe gerade den nötigen Code net parat).

    MfG,
    X-Zat / Momo

    //Edit:

    Wenn du den Explorer klonen möchtest, kannst du eigentlich besser eine TreeView nutzen, da sie a) übersichtlicher ist und sie b) meines Wissens auch Icons anzeigen lassen kann wie eine ListView... Ne ListView würde ich übrigens auch verwenden...
    ich verstehe nicht genau was du meinst den der code den ichhabe ist ja einwandfrei .Ich möchte nur sagen zum beispiel als erstes öchte ich mal die txt files ansprechen nur wie lese ich das aus also wie spreche ich die eigenen boxen in einer listbox.


    mfg robin
    Naja du könntest bei deiner ListBox separat mit einer List(Of ...) arbeiten.
    Dazu würde ich dir empfehlen, eine eigene Klasse anzulegen, vielleicht eine abstrakte. Ich weiß, das geht über das GrundWissen hinaus, aber schaden könnte es nichts.
    Wenn ich heute noch genug Zeit finden sollte, kann ich dir mal was dazu basteln. Ich bin eigentlich gegen C&P aber meiner Meinung nach zeigst du den Willen zum Lernen!

    Außerdem kannst du wirklich besser eine ListView nehmen, da diese einfacher und dabei auch präziser anzusprechen ist. Dazu sieht sie auch noch schön aus :).

    Und so kannst du prüfen, ob du eine TXT-Datei hast:

    VB.NET-Quellcode

    1. Public Sub Verarbeiten()
    2. For Each Entry In ListBox.Items 'Oder wie die Auflistung einer ListBox sonst heißt
    3. If CheckTXTFile(Entry) = True Then
    4. 'TXT-Datei verarbeiten
    5. End If
    6. Next
    7. End Sub
    8. Public Function CheckTXTFile(ByVal DateiPfad) As Boolean
    9. Try
    10. Dim pFileInfo As New System.IO.FileInfo(DateiPfad) 'Oder auch System.IO.File.FileInfo - Weiß ich jetzt nicht, ist aus dem Kopf
    11. If pFileInfo.Extension = "txt" Then
    12. Return True 'Es ist eine TXT-Datei
    13. Else
    14. Return False 'Es ist keine TXT-Datei
    15. EndIf
    16. Catch
    17. Return False 'Fehler bei dem Erstellen einer FileInfo - Wurde ein Ordner anstelle einer Datei angegeben?
    18. End Try
    19. End Function


    MfG,
    X-Zat / Momo
    von Robin (Black-Knight) :1.Gibt es ein Tool oder element ,womit man die ordner mit windows designe(keine liste,das hatteich schon mal) anzeigen zu lassen?.

    vbarchiv.net/tipps/tipp_1587-e…-treeview-fuer-vbnet.html

    von Robin (Black-Knight): 2.gibt es die möglichkeit, ein rechtsklick menü zu erstellen?(für kopieren,einfügen etc...)

    msdn.microsoft.com/de-de/libra…ws.forms.contextmenu.aspx

    Für Kopieren/Löschen..usw....findest Beispiele im Netz.


    von Robin (Black-Knight):....wie spreche ich die eigenen boxen in einer listbox.

    vbarchiv.net/faq/faq_listbox_save_net.html