Anzeige bestimmter Dateitypen

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Anzeige bestimmter Dateitypen

Beitrag von 7x7 »

Auf dem Desktop kann ich Ordnerverknüfungen ablegen. Kann ich dieser Verknüpfung einen Parameter mitgeben, dass nur
bestimmte Dateitypen angezeigt werden?

Danke an alle die etwas wissen!
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Rokur
Beiträge: 167
Registriert: 29.12.2005 09:58
Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)

Beitrag von Rokur »

Nein, das geht nicht.
Du könntest höchstens eine Verknüpfung zu einem beliebigen Dateiexplorer anlegen, der als Parameter den Pfad zum Ordner und einen Dateitypenfilter akzeptiert.

Kannst dir ja sowas mit PB basteln. :wink:

Alternative:
Du stellst die Anzeige von versteckten Dateien aus und bastelst dir ein Programm, welches den angegebenen Ordner sucht, alle enthaltenen Dateien auf "versteckt" stellt, alle Dateien, die dem angegebenen Typ entsprechen auf "nicht versteckt" stellt, und dann den Explorer mit dem entsprechenden Pfad aufruft.
Rokur
Beiträge: 167
Registriert: 29.12.2005 09:58
Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)

Beitrag von Rokur »

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.
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Beitrag von 7x7 »

Danke Rokur, werde ich dann wohl so tun müssen.
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Antworten