wird gescannt. Wenn der Scannvorgang beendet ist, erscheint ein
MessageRequester mit der Anzahl der gefundenen Dateien.
Ich habe damit letztens die Festplatte eines Freundes durchforsten dürfen,
weil die Zeit nicht ausgereicht hatte, selbst alles zu durchforsten. Jetzt
kann ich es im Nachhinein machen.
Erweiterungen und Abänderungen am Code sind erwünscht.
- Beispiele für Erweiterungen:
- Linien, die ins leere führen, vorher abbrechen
- Liste ganz anders abspeichern und dafür einen Explorer schreiben, der
die gescannte Verzeichnisstruktur in einem TreeGadget wieder darstellt - nicht nur Namen speichern, sondern auf Wunsch auf Dateigröße und
MD5 für späteren Vergleich um Änderungen zu erkennen - ...
ins Projekte-Forum verschieben.
Ein Ausgabebeispiel findet sich unter dem Code.
Code: Alles auswählen
Procedure ScanPath(Path.s, inFile.s, Recursion.l = 0, inFileID.l = 0)
Protected DirID.l, Name.s, count.l, a.l, Praefix.s
If Right(Path, 1) <> "\" : Path + "\" : EndIf
If inFileID = 0
inFileID = CreateFile(#PB_Any, inFile)
If inFileID = 0 : ProcedureReturn #False : EndIf
EndIf
DirID = ExamineDirectory(#PB_Any, Path, "*.*")
If DirID
While NextDirectoryEntry(DirID)
Name = DirectoryEntryName(DirID)
Select DirectoryEntryType(DirID)
Case #PB_DirectoryEntry_Directory
If Name <> "." And Name <> ".."
Praefix = ""
For a = 1 To Recursion
Praefix + "| "
Next
WriteStringN(inFileID, Praefix + "|")
Praefix + "|-- "
WriteStringN(inFileID, Praefix + "[" + Name + "]")
count + ScanPath(Path + Name + "\", "", Recursion + 1, inFileID)
EndIf
Case #PB_DirectoryEntry_File
Praefix = ""
For a = 1 To Recursion
Praefix + "| "
Next
Praefix + "|-- "
WriteStringN(inFileID, Praefix + Name)
count + 1
EndSelect
Wend
EndIf
ProcedureReturn count
EndProcedure
Path.s = PathRequester("Verzeichnis auswählen...", "\")
File.s = SaveFileRequester("List-Datei angeben...", "\", "Text (*.txt)|*.txt|Alle Dateien (*.*)|*.*", 0)
If SelectedFilePattern() = 0
If LCase(Right(File, 4)) <> ".txt"
File + ".txt"
EndIf
EndIf
Files.l = ScanPath(Path, File)
MessageRequester("Fertig", "Es wurden " + Str(Files) + " Dateien gefunden.")
Code: Alles auswählen
|
|-- [DX9]
| |
| |-- [PureLibraries]
| | |-- Joystick
| | |-- Keyboard
| | |-- Mouse
| | |-- Palette
| | |-- Screen
| | |-- Sound
| | |-- Sprite
| | |-- Sprite3D
|
|-- [NT4]
| |
| |-- [PureLibraries]
| | |-- Joystick
| | |-- Keyboard
| | |-- Mouse
| | |-- MultimediaBase
| | |-- Screen
| | |-- Sound
| | |-- Sprite
| | |-- Sprite3D
|
|-- [OpenGL]
| |
| |-- [PureLibraries]
| | |-- Screen
| | |-- Sprite
| | |-- Sprite3D
|
|-- [UserLibThreadSafe]
| |
| |-- [PureLibraries]
| | |-- PBOSL_ExPrinter
| | |-- PBOSL_MSXML3
| | |-- PBOSL_NTService
| | |-- PBOSL_Process
| | |-- PBOSL_RFile
| | |-- PBOSL_ScreenGadgets
| | |-- PBOSL_SQLite3
|
|-- [UserLibUnicode]
| |
| |-- [PureLibraries]
| | |-- Mem
| | |-- PBOSL_RFile
| | |-- PBOSL_ScreenGadgets
| | |-- Pdf
| | |-- PdfDraw
| | |-- PdfMisc