Verzeichnis mit allen Unterverzeichnissen scannen? (Geklärt)
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Verzeichnis mit allen Unterverzeichnissen scannen? (Geklärt)
Ich habe die Suche benutzt, aber nichts gefunden.
Verzeichnis mit allen Unterverzeichnissen scannen?
Ich möchte jede MP3 Datei (bzw. vielleicht auch WMA ) in eine Liste aufnehmen (LinkedList). Damit ich dann eine Abspielliste habe.
Beispiel: Winamp bei der Medienbibliothek.
PS: Ich weiß, es wird nervig, ich will auch mal einen Player machen. Aber eher nur für mich, soll cool aussehen und das nötigste mitbringen. In die Programm-Feedback Sektion wird er höchstwahrscheinlich nicht kommen.
Verzeichnis mit allen Unterverzeichnissen scannen?
Ich möchte jede MP3 Datei (bzw. vielleicht auch WMA ) in eine Liste aufnehmen (LinkedList). Damit ich dann eine Abspielliste habe.
Beispiel: Winamp bei der Medienbibliothek.
PS: Ich weiß, es wird nervig, ich will auch mal einen Player machen. Aber eher nur für mich, soll cool aussehen und das nötigste mitbringen. In die Programm-Feedback Sektion wird er höchstwahrscheinlich nicht kommen.
Zuletzt geändert von Vermilion am 17.05.2007 17:34, insgesamt 1-mal geändert.
Ich schlage vor, dass du dir bitte den nötigen Code selbst raussuchst. Es gibt genügend Codes, die rekursiv suchen und diese sind können innerhalb von 60 Sekunden an deine Anforderungen angepasst werden.
Also bitte...
Also bitte...
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
mmmm
das wurde doch erst gestern gefragt.
Frag mal Kiffi, der hat da was geschrieben.
Gruß, Folker
das wurde doch erst gestern gefragt.
Frag mal Kiffi, der hat da was geschrieben.
Gruß, Folker
Kinder an die Macht http://scratch.mit.edu/
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Achja, selber versucht habe ich es auch schon.
Ich habe aber nichts gefunden! Zumindest keinen verwendbaren Code. Entweder war es kein Code, oder nichts passendes. Ich brauche etwas wie das ExamineDiretory(), oder wie das hieß, mit dem Dateitypenfilter, bloß dass es auch die Unterverzeichnisse durchsucht! -.-
PS: Ich suchte mit folgenden Suchwörtern; Unterverzeichnis, Scannen durchsuchen, unterverzeichnisse, verzeichnis, ordner
Ich habe aber nichts gefunden! Zumindest keinen verwendbaren Code. Entweder war es kein Code, oder nichts passendes. Ich brauche etwas wie das ExamineDiretory(), oder wie das hieß, mit dem Dateitypenfilter, bloß dass es auch die Unterverzeichnisse durchsucht! -.-
PS: Ich suchte mit folgenden Suchwörtern; Unterverzeichnis, Scannen durchsuchen, unterverzeichnisse, verzeichnis, ordner
So, hier. Exklusiv für dich:
Übergib der Prozedur einfach eine LinkedList. Der Parameter 'typ' muss immer klein geschrieben werden und durch Komma getrennt!
Code: Alles auswählen
EnableExplicit
Procedure sucheMusikdateien(pfad.s, Liste.s(), typ.s="mp3,wma,wav")
PathAddBackslash_(@pfad) ; Hängt Backslash an, falls nötig
Protected dir=ExamineDirectory(#PB_Any, pfad, ""), n
If dir
While NextDirectoryEntry(dir)
If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
For n=1 To CountString(typ, ",")+1
If StringField(typ, n, ",") = LCase(GetExtensionPart(DirectoryEntryName(dir)))
AddElement(Liste())
Liste()=pfad+DirectoryEntryName(dir)
Break
EndIf
Next
Continue
ElseIf DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
sucheMusikdateien(pfad+DirectoryEntryName(dir), Liste(), typ)
EndIf
Wend
FinishDirectory(dir)
EndIf
EndProcedure
NewList MeineMucke.s()
sucheMusikdateien("C:\", MeineMucke())
Debug StrQ(CountList(MeineMucke()))+" Dateien gefunden:"
ForEach MeineMucke()
Debug MeineMucke()
Next
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Ich danke dir tausend mal! Ich habe zwar endlich durch "rekursiv" etwas gefunden, aber nicht begriffen.
Und wenn ich selber da nachdenke, wie ich so etwas machen soll, gibz einen HirnError. Da kann ich einfach nicht weiterdenken, man kann sich das so vorstellen, man fährt eine Straße mit unbekannt vielen Abzweigungen lang. Und man will wissen was an jedem Ende ist. Und wenn man dann mal da ist, wie man dann zurückkommt, konnte ich mir nie vorstellen. Weil man muss er st zur letzten Abzweigung zurück, und wenn dieses Oberverz. durchsucht ist, noch einen zurück, etc..
Ich habe bei der Sache einfach Denkabstürze...
Und wenn ich selber da nachdenke, wie ich so etwas machen soll, gibz einen HirnError. Da kann ich einfach nicht weiterdenken, man kann sich das so vorstellen, man fährt eine Straße mit unbekannt vielen Abzweigungen lang. Und man will wissen was an jedem Ende ist. Und wenn man dann mal da ist, wie man dann zurückkommt, konnte ich mir nie vorstellen. Weil man muss er st zur letzten Abzweigung zurück, und wenn dieses Oberverz. durchsucht ist, noch einen zurück, etc..
Ich habe bei der Sache einfach Denkabstürze...
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Das habe ich daraus gemacht :
Code: Alles auswählen
; PureBasic 4.00!
Procedure sucheMusikdateien(pfad.s, Liste.s(), typ.s="mp3,wma,wav")
PathAddBackslash_(@pfad) ; Hängt Backslash an, falls nötig
Protected dir=ExamineDirectory(#PB_Any, pfad, ""), n
If dir
While NextDirectoryEntry(dir)
If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
For n=1 To CountString(typ, ",")+1
If StringField(typ, n, ",") = LCase(GetExtensionPart(DirectoryEntryName(dir)))
AddElement(Liste())
Liste()=pfad+DirectoryEntryName(dir)
Break
EndIf
Next
Continue
ElseIf DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
sucheMusikdateien(pfad+DirectoryEntryName(dir), Liste(), typ)
EndIf
Wend
FinishDirectory(dir)
EndIf
EndProcedure
NewList MeineMucke.s()
OpenWindow(0, 0, 0, 600, 400, "Musik", #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
ButtonGadget(0, WindowWidth(0)-105, 5, 100, 20, "Auflisten")
StringGadget(1, 5, 5, 485, 20, "C:\")
ListViewGadget(2, 5,30, 590, 365)
Repeat
Event = WaitWindowEvent()
Gadget= EventGadget()
If Event = #PB_Event_Gadget
If Gadget = 0
sucheMusikdateien(GetGadgetText(1), MeineMucke())
ForEach MeineMucke()
AddGadgetItem(2, -1, MeineMucke())
Next
AddGadgetItem(2, -1, StrQ(CountList(MeineMucke()))+" Dateien gefunden")
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
End
Richtig. Du musst jeden Ordner, wo du reingehst auch wiede ruasgehen. Also jede Straße, in die du einbiegst, legst du den Rückwärtsgang ein und fährst wieder raus.Vermilion hat geschrieben:Und wenn man dann mal da ist, wie man dann zurückkommt, konnte ich mir nie vorstellen. Weil man muss er st zur letzten Abzweigung zurück, und wenn dieses Oberverz. durchsucht ist, noch einen zurück, etc..
Weiter als bis zur Hauptstraße (hier C:\) kannst du aber nie zurück.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End