Die Abfrage
Code: Alles auswählen
If FindString(dir$, "System Volume Information", 1) > 0 : ProcedureReturn 0 : EndIf
Habe bisher noch keine andere Möglichkeit gefunden dies zu umgehen.
Ansonsten funktioniert die Proc. bei mir einwandfrei.
Viel Spass damit
Code: Alles auswählen
Declare ListDIR(dir$)
Structure count
files.l
dirs.l
EndStructure
Global NewList datei.s() ; hier sind alle gefundenen Dateien mit komplettem Pfad aufgelistet
Global NewList ordner.s() ; und hier alle Ordner
Global counter.count ; Anzahl der gefundenen Dateien und Ordner
Procedure ListDIR(dir$)
If FindString(dir$, "System Volume Information", 1) > 0 : ProcedureReturn 0 : EndIf
exdir = ExamineDirectory(#PB_Any, dir$, "*.*")
If exdir
While NextDirectoryEntry(exdir)
name$ = DirectoryEntryName(exdir)
If name$ <> "." And name$ <> ".."
If DirectoryEntryType(exdir) = #PB_DirectoryEntry_Directory
FileName$ = dir$+name$+"\"
AddElement(ordner())
ordner() = FileName$
counter.count\dirs = counter.count\dirs+1
Debug FileName$
ListDIR(FileName$)
Else
FileName$ = dir$+name$
AddElement(datei())
datei() = FileName$
counter.count\files = counter.count\files+1
Debug FileName$
EndIf
EndIf
Wend
FinishDirectory(exdir)
Else
MessageRequester("Error","Ordner kann nicht geöffnet werden: "+dir$,0)
EndIf
ProcedureReturn 1
EndProcedure