Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0364: Verzeichnisse ohne API, mittels Dir$ einlesen

 von 

Beschreibung 

Der Code zum Einlesen eines Verzeichnisses mit reinen VB-Mitteln ist kurz, allerdings auch langsamer als per API.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,09 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Listen-Steuerelement "List1"
' Steuerelement: Schaltfläche "Command1"

Option Explicit

Private Const Attr = vbNormal Or vbReadOnly Or vbHidden Or _
             vbSystem Or vbVolume Or vbDirectory Or _
             vbArchive
               
Private Sub Command1_Click()
    On Error Resume Next
    Dim Pfad As String, Name As String
    Dim x As Long
    
    MousePointer = vbHourglass
    Pfad = "c:\"
    Name = Dir$(Pfad, Attr)
    List1.Clear
    
    Do While Name <> ""
        If Name <> "." And Name <> ".." Then
            x = GetAttr(Pfad & Name)
            
            If (x And vbDirectory) <> 0 Then
                List1.AddItem "." & UCase(Name)
            Else
                List1.AddItem LCase(Name)
            End If
      End If
      
      Name = Dir(, Attr)
    Loop
    
    MousePointer = vbDefault
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 7 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von VisualbasT am 08.08.2003 um 11:20

Jedenfalls dachte ich das.
Aber ich habe das wohl mit

Msgbox "", "", vbOK Or vbInformation

Msgbox "", "", vbOK & vbInformation

Kommentar von Jochen Wierum am 08.08.2003 um 08:51

Hallo VisualBasT,

Das Ampersand-Zeichen (&) verkettet eigentlich nur Strings miteinander. Versuche einmal, die volgenden Befehle auszuführen

Const a = 10&
Const b = 20&
Const c = 30&
Const d = 40&
Const e = 50&

Const test1 = a Or b Or c Or d Or e
Const test2 = a & b & c & d & e

Private Sub Form_Load()
MsgBox CStr(test1) & vbCrLf & CStr(test2)
End Sub


Eigentlich sollte ja das gleicher herauskommen, bei mir funktioniert es jedenfalls nicht.

Gruß,
Jochen

Kommentar von VisualBasT am 07.08.2003 um 18:13

Kleiner Fehler:
(Zitat aus dem Programm)

Const Attr = vbNormal Or vbReadOnly Or vbHidden Or _
vbSystem Or vbVolume Or vbDirectory Or _
vbArchive

würde ich durch
Const Attr = vbNormal & vbReadOnly & vbHidden & _
vbSystem & vbVolume & vbDirectory & _
vbArchive


Jemand hat mir mitgeteilt, es sei besser so.
Oder liege [b]ich[/b] falsch?

Kommentar von TScherno am 04.04.2002 um 21:59

Ich find diese Art des Verzeichniss auslesens nicht schlecht, ich benutze sie für meinen Telnet-Server.

Kommentar von MichaelG am 30.01.2002 um 12:47

hi,
stell solche frage lieber ins form. und nunja, ich hoff es kommt nicht zu spät ;P
Const Attr = vbNormal Or vbReadOnly Or vbHidden Or _
vbSystem Or vbVolume Or vbDirectory Or _
vbArchive
durch
Const Attr = vbNormal or vbDirectory
ersetzen

Kommentar von Max am 04.05.2001 um 21:44

Ja noch ne Frage:
Wie kann ich es machen, dass nur "ORdner" angezeigt werden???
Die Dateien brauche ich nämlich nicht.

Kommentar von Max am 04.05.2001 um 21:36

Hi ihr.
Ich ifnde eure Seite wirklich gut und als ich den Tip hier gelesen hab bin ich verrückt geworden.
Ich habe vor einem Monat mal in euer (geiles) Forum ne Frage gestellt, die sieser Tip hier beantwortet. Macht hir das Extra so oda is das zufall? Macht weiter so.