Verzeichnis mit allen Unterverzeichnissen scannen? (Geklärt)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@AND51
Ich habe mal den Code von Vermilion alias AND51 getestet.
Bei mir ist nach 2-3 Sekunden fertig, habe ich fast verpasst? :o
Egal welchen Dateityp z.b. pb
Wieso geht das so schnell beim Suchen?
Z.B. die Windows-Suche (ok ist veraltet), aber trotzdem wieso dauert das ne viel länger?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Nun, das ist von vielen Faktoren abhängig: Wie groß ist deine Festplatte, wie viele Dateien/Ordner hast du?
Ansonsten kann ich nur sagen, dass ich immer versuche, meine Codes schön schnell+schlank=performant zu halten; deshalb könnte er auch schnell sein.
Bei mir dauerts jedoch ein paar Sekunden mehr, bis meine Gigabytes durchsucht sind.


schnell+schlank=performant
Hey, das gefällt mir! :D
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@AND51
Ich find das echt geil, dass diese Suchroutine voll schnell+schlank=performant ist :D
>Wie groß ist deine Festplatte,
200 GB :mrgreen: (7200U/min)
>wie viele Dateien/Ordner hast du?
91.236 Dateien, 9.208 Ordner :mrgreen:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Na, das geht ja noch.

Meine Festplatten sind 600 GB groß und enthalten 320.000 Dateien und 20.000 Ordner, das dauert dann cshon etwas länger.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Also meine 3600 MP3s hat der in weniger als 200ms aufgelistet. :)

Der Unterschied zur Windowssuche ist, dass er nur die Namen im Verzeichnis durchsucht und nicht jede Datei auch noch öffnet und deren Inhalt durchsucht. Glaube ich^^
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Also meine 320 GB Platte habe ich nicht durchsuchen lassen.
Hab dann doch lieber abgebrochen und den MusikPfad angegeben:

C:\Musik

Das war auch ganz fix. Waren aber nur 8 GB und ~ 4.400 Dateien.
Also nix weltbewegendes.
Interessanter wird es da mit Bildern :?

110 GB, ~ 100.000 Dateien, ~ 1.500 Ordner

Das Anzeigen im Debugger dauert länger als das durchsuchen.

Was ist eigentlich, wenn der Speicher durch die Dateien voll wird?

Na gut, das passiert so schnell wohl nicht. Da muss man schon ein Terrabyte haben und darf nur *.* suchen.

Aber selbst dann werden wohl bloß knapp 200 MB im Speicher für die Liste verbraucht :mrgreen:

100.000 Dateien pro 100 GB.
200 Byte pro DateiAnzeige mit Suchpfad.
Im Unicode das doppelte

10*100.000*200/1024/1024 ~ 190

:allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> Der Unterschied zur Windowssuche ist, dass er nur die Namen im Verzeichnis durchsucht
IMHO muss die SuFu von Windows auf mehr Dinge achten. Man kann ja einstellen, mann will nur Dateien, die größer/kleiner als X KB sind, von welchem Datum, etc. All das ignoriere ich und konzentriere mich auf den Dateinamen. Daher der Geschw.vorsprung.

> Also meine 3600 MP3s hat der in weniger als 200ms aufgelistet
Waren die alle in einem Ordner?

> Also meine 320 GB Platte habe ich nicht durchsuchen lassen
Angeber! Soll ich meine 2 Festplatte hinzuziehen? Dann sind's bei mir 600 GB :wink:

> Das Anzeigen im Debugger dauert länger als das durchsuchen
Logisch,, 2 Gründe:
1.: "Der Debugger verlangsamt das Programm bis zum Faktor 6" (Zitat PB Hilfe). das Programm läuft also bis zu 600% langsamer als üblich
2.: Der Debugger kann per AddGadgetItem() nicht so schnell die Items hinzufügen, wie sie gefunden werden

> Was ist eigentlich, wenn der Speicher durch die Dateien voll wird?
Dann würde mein Code in diesem Fall immer die letzte Datei überschreiben.
Denn AddElement() gibt 0 zurück, wenn kein neues Element angefügt werden konnte. Da ich den Befehl aber nicht prüfe, sondern blind darauf vertraue, dass der Speicher reicht... bin ich ein böhser Junge! :lol:

> Na gut, das passiert so schnell wohl nicht. Da muss man schon ein Terrabyte haben und darf nur *.* suchen
So in der Richtung, ja.

> Aber selbst dann werden wohl bloß knapp 200 MB im Speicher für die Liste verbraucht
Du machst dir aber viele Gedanken um das Thema! :o Als ich u PB wechselte, habe ich noch nie vorher sowas wie LinkedLists gesehen, nur Arrays. Ich war so begeistert, dass ich bis heute immer LinkedLists anstatt Arrays benutze, wo es nur geht. (Wenn es sinnvoll ist.) Und in der ganzen Zeit bin ich noch nie an irgendwelche Grenzen gestoßen!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

3600 MP3
4400 MP3

... müsst Ihr 'ne Kohle haben.
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Nein, wieso? :mrgreen:
ich weiß ja nicht, wie die anderen das machen, aber ich mach immer

Code: Alles auswählen

For n=1 to 8192
   CreateFile("C:\Musik\Ein Lied geiler als das andere "+Str(n)+".mp3")
Next
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

AND51 hat geschrieben: For n=1 to 8192
CreateFile("C:\Musik\Ein Lied geiler als das andere "+Str(n)+".mp3")
Next
Ist zwar schon etwas her, aber so sehe ich das auch.
Nur weil die Dateien als Endung MP3 haben heißt das noch lange nicht, dass man die nicht selbst erstellt hat, oder sonst wie legal dran gekommen ist.

Der MusikMaker von Magix bietet übrigens eine solche ähnliche Funktion.
Der kann seine Samples nach Stimmung automatisch zusammenfügen.
Und hat auch MP3-Export.

Und selbst, wenn man es nicht mit MP3s macht, sondern mit Bildern wie JPEG versucht, wird es interessant. Aber wer hat schon alle seine Bilder selbst geschossen, gemalt oder anders irgendwie erstellt :shock:

Ich schon :roll:
Kinder an die Macht http://scratch.mit.edu/
Antworten