VB - Füllen Sie eine TreeView mit den Systemdatenträgern und deren Verzeichnissen

Hier ist eine Routine, die eine TreeView mit den Systemdatenträgern und ihren Verzeichnissen füllen kann.

Beschreibung

Das Problem bestand darin, den Knotenschlüssel zu finden, da manchmal ein Schlüssel zweimal veröffentlicht wurde. Dann fand ich eine Lösung:

  • Verwenden Sie den vollständigen Pfad als Schlüssel, und auf diese Weise können Sie sicher sein, dass keine Duplikate vorhanden sind.
  • Ich konnte die Netzlaufwerke nicht testen
  • Ich habe die Systemverzeichnisse entfernt. Mein Ziel ist es, ein Bild zum Durchsuchen zu bringen (zum Herunterladen verfügbar).
  • Die Routine ist rekursiv und relativ kurz.
  • Seien Sie nicht überrascht, wie lange es dauert (abhängig von Ihrem System), aber die Routine ist fast so schnell wie im Windows Explorer, außer dass sie beim Start nicht automatisch gestartet wird.
  • Sie können dem Projekt einen kompletten Image-Exploere in VB6 herunterladen.
  • Wenn Sie auf ein Bild klicken, werden in der Nachricht die Nummer und der vollständige Pfad zum Bild angezeigt.
  • Sie können die Filter auch ändern, um die Anzeige anderer Bilder zu ermöglichen.

Das Projekt enthält eine benutzerdefinierte OCX und DLL. Sie müssen:

  • Entpacke den Ordner.
  • Klicken Sie nicht auf das Projekt, navigieren Sie zum VB6-Symbol, klicken Sie mit der rechten Maustaste auf das Symbol und öffnen Sie es als Administrator.
  • Klicken Sie bei der Eröffnung auf "Vorhanden" und öffnen Sie das Projekt LN_Explorateur.vpb
  • Ändern Sie die Breite der Strukturansicht, indem Sie die rote Linie verschieben (klicken Sie auf die Linie und verschieben Sie sie).
    • Ändern Sie die Größe der Miniaturansichten mit der Taste "S".

Die Bildanzeige erfolgt mit der auf den einfachsten Ausdruck reduzierten Gdi + -Dll.

  • Ich denke, die Routine kann leicht auf VB.Net übertragen werden

Code

Option explizit

 Sub Initialise_TreeDir (TreeDir als TreeView) Dim ExpDr, Rep, Drv, S als String, N, D, a, r, Dim Cle als String vereinigen, sCle als String, Num als Integer, Sr als Integer Dim nodX als Node Num = 64 Set ExpDr = CreateObject ("Scripting.FileSystemObject") Set Drv = ExpDr.Drives für jedes D In Drv S = D.DriveLetter '& ":" Wenn D.DriveType = 3 Dann' réseaux N = D.ShareName ElseIf D.DriveType = 1 Dann 'DD externe N = "- Média amovible - (" & D.VolumeName & ")" Incr Num: Cle = SS = S & ": \" Set nodX = TreeDir.Nodes.Add (,, Cle, S & N, 6) AjoutRep S, Cle, TreeDir ElseIf D.DriveType = 2 Dann 'DD N = D.VolumeName Incr Num: Cle = SS = S & ": \" Set nodX = TreeDir.Nodes.Add (,, Cle, S & "- (" & N & ")", 2) AjoutRep S, Cle, TreeDir ElseIf D.DriveType = 4 Dann 'DVD On Error Resume Next N = D.VolumeName Wenn Err = 71 Dann N = "Lecteur DVD - (vide) "Else N =" Lecteur DVD - ("& N &") "End If Incr Num: Cle = Chr (Num) &" 0 "S = S &": \ - "Setze nodX = TreeDir.Nodes Fügen Sie (,, Cle, S & N, 3) hinzu. Andernfalls beenden Sie, wenn S = "" D = "" Next Set nodX = Nichts Set ExpDr = Nichts Set Drv = Nichts End Sub Sub AjoutRep (Chem als String, Cle als String, TreeDir als TreeView) Dim Rep, sRp, Obj, sRep, sR2 Dim sCle als String, Num als Integer, Sr As Integer Dim nodX As Node Dim NbsR As Integer, S As String Sr = 9 Chem = Chem & IIf (Rechts (Chem, 1) = "\", "", "\") Set Obj = CreateObject ("Scripting .FileSystemObject ") Setze Rep = Obj.Getfolder (Chem) Wenn Links (Rep.Name, 1) =" $ "Dann Gehe zu Passe2 Setze sRep = Rep.subfolders für jedes sRp In sRep S = UCase (sRp.Name) Wenn Links (S, 1) = "$" oder S = "WINDOWS" oder sRp.Attributes> 100 oder sRp.Attributes = 19 _ oder Left (S, 6) = "SYSTEM" oder Left (S, 7) = "PROGRAM" Oder Links (S, 4) = "USER" _ Oder Links (S, 6) = "DRIVER" Oder Links (S, 5) = "TOOLS" Dann Gehe zu Passe On Error Resume Weiter Setze sR2 = sRp.subfolders NbsR = sR2 .Count If Err 0 Then Err = 0: Gehe zu Passe Incr Sr sCle = sRp.Path & "\" On Error Gehe zu 0 'Debug.Print sRp.Name; ""; Cle; ""; sCle Set nodX = TreeDir.Nodes.Add (Cle, tvwChild, sCle, sRp.Name, 5, 4) Wenn NbsR> 0, dann AjoutRep sRp.Path, sCle, TreeDir End Wenn Passe: Next Passe2: Set Obj = Nothing Set Rep = Nichts gesetzt sRep = Nichts gesetzt nodX = Nichts gesetzt sR2 = Nichts gesetzt End Sub 

Downloads

  • Link1
  • Link2

Credits

Vorherige Artikel Nächster Artikel

Top-Tipps