Verzeichnisgröße [Erledigt]
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14641
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Verzeichnisgröße [Erledigt]
Gibt es eine Möglichkeit auszulesen, wie viel Platz ein Verzeichnis belegt? Mit DiskSpace() bekomme ich nur das gesamte Laufwerk, und Directory() gibt mir nur die Größe von Dateien, aber nicht von Verzeichnissen zurück.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15689
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Verzeichnisgröße
Direkt nicht, aber mit directory() und Größe addieren sollte es funktionieren. Falls nötig muss man noch die Unterverzeichnisse durchsuchen
Ich meine ich hätte mal sowas geschrieben ...
Ich meine ich hätte mal sowas geschrieben ...
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9345
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 100 Mal
- Danksagung erhalten: 359 Mal
- Kontaktdaten:
Re: Verzeichnisgröße
Die (belegte) Verzeichnisgröße wird vom Betriebssystem nicht verwaltet. Entsprechende Tools - vom Windows-Explorer bis zum Total Commander - ermitteln im Bedarfsfall die Verzeichnisgröße, indem sie die Dateigrößen der Inhalte summieren. Das kann man - je nach System - sogar beobachten. Also hilft nur eine rekursive Funktion, die die Inhalte aller Unterverzeichnisse ermittelt und die Dateigrößen addiert.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14641
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Verzeichnisgröße
Ich hab das jetzt anders geregelt. Das Verzeichnis wird gemapt, und dann kann ich die Größe wieder auslesen.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2823
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 95 Mal
- Danksagung erhalten: 13 Mal
Re: Verzeichnisgröße [Erledigt]
Hallo, Jan -
könntest Du das etwas detaillierter beschreiben? Danke im voraus!
könntest Du das etwas detaillierter beschreiben? Danke im voraus!
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9345
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 100 Mal
- Danksagung erhalten: 359 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Bei einem gemappten Verzeichnis funktioniert DiskSpace() (wieder), das wird's sein.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15689
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Bist du dir da sicher ?
Ich erhalte auf gemappten Laufwerken die gleiche Angabe wie beim Laufwerk direkt.
Egal ob ich im Stammverzeichnis oder irgendwo darunter mappe ...
Ich erhalte auf gemappten Laufwerken die gleiche Angabe wie beim Laufwerk direkt.
Egal ob ich im Stammverzeichnis oder irgendwo darunter mappe ...
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15689
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Brauchst du das eigentlich einmalig oder aus einem Programm heraus öffters ?
Mit dem Explorer kannst du die Verzeichnisse und Dateien markieren und dann mit rechter Maustaste Eigenschaften wählen.
Nun zählt und summiert er
Mit dem Explorer kannst du die Verzeichnisse und Dateien markieren und dann mit rechter Maustaste Eigenschaften wählen.
Nun zählt und summiert er
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14641
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Genau wie Tom sagt - habe ich das Verzeichnis ersteinmal gemapt, kann ich wieder alle Tools benutzen die auf Laufwerksgrößen gehen (Gesamtgröße, belegte Größe, freie Größe).
Der Ablauf ist: Mapen, auslesen, Laufwerksbuchstaben wieder löschen. Man räumt immer wieder auf, wenn man was geändert hat
Und ja, das ist eine regelmäßige Abfrage. Daher habe ich ein kleines Progrämmchen dafür geschrieben, das rekursiv alle Verzeichnisse in dem Laufwerk mapt und ausliest. Alles in Allem inkl. 'defines, Leerzeilen, Kommentaren, Ausgabe der Werte, etc. sind das 34 Zeilen.
Jan
Der Ablauf ist: Mapen, auslesen, Laufwerksbuchstaben wieder löschen. Man räumt immer wieder auf, wenn man was geändert hat
Und ja, das ist eine regelmäßige Abfrage. Daher habe ich ein kleines Progrämmchen dafür geschrieben, das rekursiv alle Verzeichnisse in dem Laufwerk mapt und ausliest. Alles in Allem inkl. 'defines, Leerzeilen, Kommentaren, Ausgabe der Werte, etc. sind das 34 Zeilen.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2823
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 95 Mal
- Danksagung erhalten: 13 Mal
Re: Verzeichnisgröße [Erledigt]
Hallo,
also, bei mir (antwortend auf Tom) gibt DiskSpace("W") den Wert zurück, den auch DiskSpace("C") liefert, wobei W: ein Verzeichnis auf C: ist, das gemappt wurde (was auch logisch ist).
Von daher fehlt mir wissensmässig was bei der Lösung, denn ich habe damit immer noch nicht die belegten Bytes (ohne rekursiv durch die Verzeichnisse zu gehen).
also, bei mir (antwortend auf Tom) gibt DiskSpace("W") den Wert zurück, den auch DiskSpace("C") liefert, wobei W: ein Verzeichnis auf C: ist, das gemappt wurde (was auch logisch ist).
Von daher fehlt mir wissensmässig was bei der Lösung, denn ich habe damit immer noch nicht die belegten Bytes (ohne rekursiv durch die Verzeichnisse zu gehen).
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Jan
- Marvin
- Beiträge: 14641
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Georg,
ganz grob läuft das bei mir so:
(aVerzeichnisse habe ich vorher mit directory() eingelesen, auch das war gemapt worden)
Jan
ganz grob läuft das bei mir so:
(aVerzeichnisse habe ich vorher mit directory() eingelesen, auch das war gemapt worden)
Code: Alles auswählen
RunShell("/C net use Z: \\Video-Rechner\Videodaten\" + aVerzeichnisse[i][1])
? PadR(aVerzeichnisse[i][1], 20) + PadL(Var2Char(DiskTotal("Z:\") / 1024 / 1024 / 1024), 10) + " Gigabyte belegt, " + ;
PadL(Var2Char(DiskFree("Z:\") / 1024 / 1024 / 1024), 7) + " Gigabyte frei"
RunShell("/C net use Z: /Delete") // Laufwerkszuweisung wieder aufheben
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15689
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Hallo Jan,
das ist ja ganz nett, aber die Rückgabewerte entsprechen IMMER DENEN DES KOMPLETTEN LAUFWERKS
Für einzelne Verzeichnisse muss man das anders programmieren ...
das ist ja ganz nett, aber die Rückgabewerte entsprechen IMMER DENEN DES KOMPLETTEN LAUFWERKS
Für einzelne Verzeichnisse muss man das anders programmieren ...
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9345
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 100 Mal
- Danksagung erhalten: 359 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Ja, Hubert hat Recht - ich hab's auch gerade ausprobiert. Und übrigens ist das sogar so, wenn man für das Verzeichnis ein Kontingent gewählt hat - der freie Platz entspricht demjenigen des gesamten Laufwerks.
Außerdem würde ich solche Batchlösungen, die in die Netzwerk-Infrastruktur eingreifen, und sei es nur für ein paar Sekunden, niemals anwenden. Erstens ist nicht verlässlich, dass das immer funktioniert, außerdem kann das unabsehbare Folgen haben (Anwender sehen just in diesem Augenblick dieses "Laufwerk" speichern dort etwas, und finden ihre Daten niemals wieder), und drittens hat man keine Kontrolle über Erfolg oder Niederlage. Mal davon abgesehen, dass die Daten sowieso nicht stimmen.
Hier gibt es mehrere Anleitungen dazu, wie man die Inhalte von (Unter-)Verzeichnissen rekursiv löscht oder zusammenstellt. Die muss man nur etwas ausbauen, um die Dateigrößen zu ermitteln. Das ist verlässlicher - und auch genauer.
Außerdem würde ich solche Batchlösungen, die in die Netzwerk-Infrastruktur eingreifen, und sei es nur für ein paar Sekunden, niemals anwenden. Erstens ist nicht verlässlich, dass das immer funktioniert, außerdem kann das unabsehbare Folgen haben (Anwender sehen just in diesem Augenblick dieses "Laufwerk" speichern dort etwas, und finden ihre Daten niemals wieder), und drittens hat man keine Kontrolle über Erfolg oder Niederlage. Mal davon abgesehen, dass die Daten sowieso nicht stimmen.
Hier gibt es mehrere Anleitungen dazu, wie man die Inhalte von (Unter-)Verzeichnissen rekursiv löscht oder zusammenstellt. Die muss man nur etwas ausbauen, um die Dateigrößen zu ermitteln. Das ist verlässlicher - und auch genauer.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14641
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 87 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Einwand von Tom: Vollste Zustimmung. Ich würde das auch niemals in die freie Wildbahn entlassen. Aber in diesem speziellen Fall benutzen das exakt drei Personen, und die wissen, wie man damit umzugehen hat. Und natürlich habe ich mich vergewissert, das keiner der drei irgendwas auf Z: gemapt hat.
Einwand von Hubert und Tom: Kann ich so nicht nachvollziehen. Die Daten werden sauber und korrekt ausgelesen und dargestellt. Jedes Unterverzeichnis mit seinen exakten Werten.
Jan
Einwand von Hubert und Tom: Kann ich so nicht nachvollziehen. Die Daten werden sauber und korrekt ausgelesen und dargestellt. Jedes Unterverzeichnis mit seinen exakten Werten.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15689
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Verzeichnisgröße [Erledigt]
Und diese 3 Unterverzeichnisse gehören zu einem gemeinsamen Laufwerk ?
Welches OS ?
Wenn es unterschiedliche Laufwerke sind, hast du natürlich verschiedene Werte, aber immer wird der Wert für das ganze Laufwerk zurückgeliefert.
Festplattengröße, freier Speicherplatz und belegter Speicherplatz sind für alle Verzeichnisse unter Windows identisch.
Aber wenn es für deine Zwecke reicht, soll es mir recht sein
Welches OS ?
Wenn es unterschiedliche Laufwerke sind, hast du natürlich verschiedene Werte, aber immer wird der Wert für das ganze Laufwerk zurückgeliefert.
Festplattengröße, freier Speicherplatz und belegter Speicherplatz sind für alle Verzeichnisse unter Windows identisch.
Aber wenn es für deine Zwecke reicht, soll es mir recht sein
Gruß
Hubert
Hubert