Gibt es einen Befehl der die "Ordnergröße" (Unterordner + Dateien) zurückgibt?
-
hm das ist mist, dann bräuchte ich ja eine 2. Schleife. Eine die die Gesammtdateigröße ermittelt und eine die die Dateien letztendlich löscht.
Gibt es wenigstens einen Befehl der mir die Anzahl aller Dateien eines Ordners (+ Unterordner) zurückgibt oder muss ich hier auch CFileFind benutzen?
-
erstens du brauchst keine 2te schleife. kannst du einen file finden und löschen und springen auf die nächsten file.
CFileFind hat paar funktionen die die hilfen. wir fileextention und filetitel und filename ..muss du dir mal schauen
-
dokdok schrieb:
erstens du brauchst keine 2te schleife. kannst du einen file finden und löschen und springen auf die nächsten file.
CFileFind hat paar funktionen die die hilfen. wir fileextention und filetitel und filename ..muss du dir mal schauenEr will doch ne Progessbar, da muss er vorher wissen wieviel da ist, daher auch 2 Durchläufe bei dieser Variante
-
Man muss es nicht unbedingt vorher wissen... EIne Näherung bekommt man, wenn man immer nur eine Ebene komplett einliest; dann weiss man zumindest in wie viele Stücke man die 100% teilen muss (also 100 / (jedes Verzeichnis + 1)). Wenn man dann das erste Unterverzeichnis durchgeht macht man das gleiche Spiel nochmals und unterteilt dann das schon unterteilte entsprechend der obigen Regel...
Somit hat man zumindest eine Näherung die bei "normalen" Verzeichnis und Dateistrukturen fast passt und man braucht nicht zweimal durchgehen...
-
Pellaeon schrieb:
dokdok schrieb:
erstens du brauchst keine 2te schleife. kannst du einen file finden und löschen und springen auf die nächsten file.
CFileFind hat paar funktionen die die hilfen. wir fileextention und filetitel und filename ..muss du dir mal schauenEr will doch ne Progessbar, da muss er vorher wissen wieviel da ist, daher auch 2 Durchläufe bei dieser Variante
Richtig. Das löschen der Dateien und Ordner funktioniert schon. Es sieht allerdings komisch aus wenn dein Programm "irgendwas" macht und du weist nicht wie lange es dauert.
Ich hab gehofft das es schon einen fertigen Befehl gibt der mir kurz und knackig die Info's liefert. Vorher selbst holen ist irgendwie doppelt gemoppelt.
-
brauchst du trotzdem 2 Schleifen, weil du mein Start ja erst die obereste Ebene analysieren musst.
-
Zwei Schleifen sind das nicht! Ich gehe nie die gleiche Ebene zweimal durch (bei ersten Mal speichere ich mir natürlich die Daten in einer Liste)...
Und eine Ebene durchzugehen ist i.d.R. sehr schnell.Du kannst natürlich auch zweimal durchgehen, aber dann kann es passieren, dass entweder ein Verzeichnis dazugekommen oder schon gelöscht wurde (und somit Deine Prozentangaben noch weniger stimmen).
-
Hm... mein Algorithmus passt irgendwie nicht so richtig zu beiden Varianten. Da er keine Info's liefert "welches" Unterverzeichnis gerade gelöscht wurde. Er löscht halt einfach solange bis keine Dateien mehr gefunden werden.
trotzdem danke für eure Hilfe
-
Es gibt imho nur eine absolut zuverlässige Methode herauszufinden, wie lange eine Aufgabe (z.B. Verzeichnis löschen) benötigt - Aufgabe starten und Zeit messen
Für alles andere reichen Näherungsangaben (oder eine Textausgabe ala "Bitte warten - lösche Verzeichnis C:\xyz\sub1\alpha" natürlich mit regelmäßig aktualisiertem Verzeichnisnamen).
-
glaube nicht das der InstallShield vorher ne Zeitmessung macht :p
Aber der hängt auch gerne bei Prozent 99 oder 100 nochmal genausolange wie es bis dahin gedauert hat^^ *gg*