Autor |
Beitrag |
Mordilion
      
Beiträge: 96
WinXP Prof., Win2k Prof.
Delphi 7 Prof., Delphi 2009 Prof., PHP4/5, CSS, HTML
|
Verfasst: Mi 17.05.06 16:21
Hallo,
ich hoffe mir kann einer helfen, denn ich suche mich noch tot.
Es geht darum, das ich gerne die Größe eines Verzeichnis ermitteln möchte und das OHNE FindFirst. Gibt es dafür vielleciht eine API oder ähnliches?
Manche wollen bestimmt nun wissen wieso ich das nicht mit FindFirst machen möchte, nunja es ist halt so wenn ich einen Ordner habe der einen Inhalt von 40GB so braucht die Methode mit FindFirst sehr lange und ich möchte das irgendwie schneller haben, denn wenn ich mir die Eigenschaften von einem Ordner im Explorer anschaue, geht das schneller als die Methode mit FindFirst!
Gruß
Mordi
_________________ Für das große Chaos haben wir Computer. Die übrigen Fehler machen wir von Hand.
Der Mensch ist das wichtigste und kostbarste Peripheriegerät einer Computeranlage.
|
|
Kroko
      
Beiträge: 1284
W98 W2k WXP
Turbo D
|
Verfasst: Mi 17.05.06 20:38
(a) glaube ich nicht, dass es über Eigenschaften des Ordners schneller ist, maximal der Geschwindigkeitsvorteil, das das (oder Teiles des) Verzeichnis bereits im Cache liegen
(b) rufe mal die Methode mit FindFirst 2x hintereinander auf und messe die Zeit, die nimmt beim zweiten Mal erheblich ab
(c) ich kenne keine Fkt, die dies tut 
_________________ Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
|
|
Mordilion 
      
Beiträge: 96
WinXP Prof., Win2k Prof.
Delphi 7 Prof., Delphi 2009 Prof., PHP4/5, CSS, HTML
|
Verfasst: Mi 17.05.06 20:58
Ja ok, aber kann man die methode mit FindFirst beschleunigen, so das es wenigstens nicht ganz so lange dauert?
Was ich mir vorstellen könnte wäre das mit mehreren Threads zu machen, aber dann ziehe ich wohl die ganze auslastung auf mein Programm oder?
_________________ Für das große Chaos haben wir Computer. Die übrigen Fehler machen wir von Hand.
Der Mensch ist das wichtigste und kostbarste Peripheriegerät einer Computeranlage.
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 17.05.06 21:05
Heiko hat da mal was gemacht, und entwickelt da grade weiter dran rum. *klick*. Dort ist auch ein Link zu Luckies DriveTools, was wohl die Basis für SearchTools war.
_________________ We are, we were and will not be.
|
|
Mordilion 
      
Beiträge: 96
WinXP Prof., Win2k Prof.
Delphi 7 Prof., Delphi 2009 Prof., PHP4/5, CSS, HTML
|
Verfasst: Mi 17.05.06 21:21
Cool, danke!
hatte das zwar FAST genau so wie dort, das einzige was ich nicht hatte war das ZeroMemory(@lpFindFileData, SizeOf(lpFindFileData)); am anfang der Funktion zu machen. Dadurch wurde die methode sehr stark beschleunigt!
_________________ Für das große Chaos haben wir Computer. Die übrigen Fehler machen wir von Hand.
Der Mensch ist das wichtigste und kostbarste Peripheriegerät einer Computeranlage.
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Do 18.05.06 08:09
Ah interessant, hatte vor kurzem mir die selben Gedanken gemacht und ahnte schon, dass man nicht um FindFirst nicht rum kommt, was man ja bei der Ermittlung der Ordnergröße im Explorer sehen kann.
|
|
|