festplatte durchsuchen
-
hi ich bins nochmal gg
kann mir einer sagen wie ich meine GANZE festplatte durchsuchen kann
ich schaffs das ich nen ordner durchsuche aber was wenn da wieder ein ordner drinnen is und so weiter und wie komm ich dann wieder zurück???
(fragen über fragen^^)mfg killakathl
-
Du könntest dir ne Funktion schreiben, die ein Verzeichnis ausliest und sobald du auf ein Verzeichnis stoßt, rufst du diese funktion wieder auf.
-
ja das wär ne möglichkeit aber wie komm ich dann wieder zurück wenn ich mit dem verzeichniss fertig bin???
mfg killakathl
-
killakathl schrieb:
ja das wär ne möglichkeit aber wie komm ich dann wieder zurück wenn ich mit dem verzeichniss fertig bin???
Schonmal was von Rekursion gehört? wenn die aufgerufene Funktion irgendwann zurückkehrt (weil dort kein weiteres Unterverzeichnis mehr gefunden wurde), macht dein Programm ja automatisch in der ursprünglichen Funktion weiter

-
flenders schrieb:
Schonmal was von Rekursion gehört?
oder man startet für jedes neue verzeichnis einen eigenen thread. wär mal interessant zu testen, ob das schneller funzt als eine rekursive funktion. wenn man alle filenamen ausgibt sicher nicht, aber beim suchen könnt's was bringen.
-
Mit konkurrierende Threads wird es schwer, Performance zu gewinnen, da Du den Lesekopf mit hoher wahrscheinlichkeit kreuz und quert über die Platte jagst.
Raymond Chen hat neulich über die zugehörigen Fallen geblogt, zusammengefaßt:
- Breitensuche ist besser als Tiefensuche (als am besten anstehende unterverzeichnisse merken),
- Auf Reparse Points testen, um Endlosrekursion zu vermeidenAußerdem gabs da eine "schöne" (well, aufwendige) Lösung mit Fibers.
-
peterchen schrieb:
Mit konkurrierende Threads wird es schwer, Performance zu gewinnen, da Du den Lesekopf mit hoher wahrscheinlichkeit kreuz und quert über die Platte jagst.
na, da sollte man die intelligenz des systems nicht unterschätzen. plattenzugriffe werden optimiert, da das ganze ja eh' für mutithreading ausgelegt ist. vielleicht probier ich's mal aus...
peterchen schrieb:
Raymond Chen hat neulich über die zugehörigen Fallen geblogt, zusammengefaßt:
schöne seite

-
da sollte man die intelligenz des systems nicht unterschätzen
besser unter- als über

Wenn die Daten im Cache sind, dann macht es auf einem Single-Prozessor-System kaum einen Unterschied. Und wenn's nicht im Cache ist, sollte man sich hüten, zwischen verschiedenen Punkten hin- und herzuspringen.
Was die Hardware kann ist: die CPU nicht belasten, während ein Thread im Hintergrund sucht.Aber probier's ruhig mal aus, und poste deine Eregebnisse hier!