Hab mal aus Langeweile sowas gebastelt:
Code: Alles auswählen
If CountProgramParameters() <> 2
End
EndIf
Define path.s = ProgramParameter()
Define filter.s = ProgramParameter()
Procedure showHideDirectory(path.s, filter.s, attrib)
If ExamineDirectory(0,path,"*.*")
SetCurrentDirectory(path)
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File And (Right(DirectoryEntryName(0),Len(filter)+1) = "."+filter Or filter = "*")
SetFileAttributes(DirectoryEntryName(0),attrib)
ElseIf DirectoryEntryType(0) = #PB_DirectoryEntry_Directory And DirectoryEntryName(0) <> "." And DirectoryEntryName(0) <> ".."
showHideDirectory(path+"\"+DirectoryEntryName(0),filter,attrib)
EndIf
Wend
EndIf
EndProcedure
showHideDirectory(path,"*",#PB_FileSystem_Hidden)
showHideDirectory(path,filter,#PB_FileSystem_Normal)
RunProgram("explorer.exe",path,path)
Zum Aufruf:
Lege eine Verknüpfung zu diesem PB-Programm an und gebe folgendes als Ziel ein:
"C:\Pfad zum Program\Programmname.exe" "c:\test" "txt"
Wenn du die Verknüpfung jetzt startest, dann wird der Explorer im Ordner C:\Test geöffnet und nur Textdateien angezeigt. Das Programm arbeitet rekursiv, d.h. alle Dateien in Unterordnern werden ebenfalls gefiltert.
1. Parameter: Pfad zu einem Ordner, den du anzeigen willst
2. Parameter: Dateierweiterung ohne Punkt und Joker-Zeichen, z.B. txt, bmp, jpeg usw. Um alle Dateien anzuzeigen kannst du einen alleinstehenden Stern * verwenden.
Damit das funktioniert musst du natürlich im Explorer unter Ordneroptionen die Anzeige von versteckten Dateien abschalten.