online 1
gast (50)

/ Forum / WindowsXP

WindowsXPWindowsXP

Fragevon PSI-User vom 18.01.2022, 12:39 Options

Anzeige für freien Speicherplatz verändert sich nicht, trotz hinzugekommener Daten

Hi!

Ich hab schon wieder ein komisches PSI-Phänomen entdeckt. Aber mal von Anfang an:
Ich schreibe gerade ein VBScript, das die Blockgrösse eines Dateisystems ermitteln muss. Bis jetzt ist mir dafür nichts Dümmeres eingefallen, als den freien Speicherplatz vor und nach dem Erstellen einer 1 Byte grossen Datei zu vergleichen. Natürlich ist das Murks und störanfällig, wenn ein anderer Prozess gleichzeitig auf das Laufwerk zugreift. Wenn jemand eine bessere Methode kennt - sehr gerne!

OK, zurück zum Thema. Eine 1 Byte grosse Datei belegt ja mehr als nur ein Byte, sondern einen ganzen Block. Unter FAT32 funktioniert diese Methode, um die Blockgrösse zu ermitteln. Nun habe ich es auch unter NTFS probiert, aber da geht es nicht.

Wenn ich unter NTFS eine 1 Byte grosse Datei erzeuge, dann sagt der Explorer unter Eigenschaften zwar, dass diese 4096 Byte belegt, aber unter Eigenschaften des Laufwerks ändert sich durch das Anlegen einer solchen Datei nicht der zur Verfügung stehende Speicherplatz. Kapier ich mal wieder nicht. Würde mich über Aufklärung freuen.

Danke!


Antwort schreiben

Antwort 1 von son_quatsch vom 18.01.2022, 13:51 Options

...NTFS speichert sehr kleine Daten in der MTF selbst - und diese hat stets bereits reservierten Platz. Daher "wächst" auch nicht der Bestand auf dem Laufwerk.

Was du willst, liefert die die Win32-API-Funktion GetDiskFreeSpace(). Der Parameter lpSectorsPerCluster (meist 8) wird mit lpBytesPerSector (meist 512) multipliziert und du hast deine Blockgröße.

Antwort 2 von PSI-User vom 18.01.2022, 14:29 Options

Ah, ok. Danke!

Aber wie komm ich mit einem WSH-Script an die API-Funktionen ran?

Antwort 3 von son_quatsch vom 18.01.2022, 14:52 Options

Keine Ahnung - vielleicht kannst du die Ausgabe folgendes Kommandos entsprechend auswerten:
fsutil fsinfo ntfsinfo c: 

Antwort 4 von Luke_Filewalker vom 18.01.2022, 16:28 Options

Hi

son_quatsch hat die beste Möglichkeit in A1 geposted. Damit lässt sich das direkt abfragen ohne sich so "verrenken" zu müssen. Leider kann VBScript nicht direkt mit APIs umgehen. Es "soll" aber wohl doch über einen Umweg gehen. Prinzipiell würde es sich lohnen da weiter zu recherchieren. Denn gerade die API eröffnet einem eine ganze neue Windows-Programmier-Welt.

Antwort 5 von PSI-User vom 19.01.2022, 13:03 Options

Danke, erstmal! Ich hab den Tip noch nicht ausprobiert, weil mir jetzt was dazwischen gekommen ist. und ich auch grad kein NT-Windows da habe. Ich meld mich noch mal, wenn ichs umgesetzt habe.

Was du, Luke, im Hinterkopf hast, ist wahrscheinlich, dass Microsoft damals im Internettechnologiewettbewerb von ActiveX mit Java seine Felle hat davonschwimmen sehen und man dann VB5 zum kostenlosen Download zur Verfügung gestellt hat, um die eigene Technologie zu unterstützen. Hat aber wohl nicht geklappt. Jedenfalls war diese Version, so weit ich weiss, voll funktionsfähig, bis auf die Einschränkung, dass man keine EXE-Dateien erzeugen konnte, sondern nur OCX, also ActiveX-Controls. Wenn man das fürs Scripting registriert, kann man es aus WSH-Skripten ansprechen.

Ist für mich aber keine Alternative, da 1. ich erstmal ein bisschen VB lernen müsste, 2. erstmal suchen müsste, wo ich das Installationsfile verloren habe und dann müsste das Ding ja auch 3. auf jedem Rechner installiert werden, damit das Script läuft.

Da ich son_quatsch als kompetenten Helfer kenne, denk ich dass sein Vorschlag funzen wird. :)

Antwort 6 von son_quatsch vom 19.01.2022, 15:16 Options

Die Funktion ist auch unter Win95 sowie dessen Geschwistern schon verfügbar.

Antwort 7 von Luke_Filewalker vom 19.01.2022, 16:37 Options

@PSI-User
Nein, das (VB) hatte ich nicht im Hinterkopf sondern tatsächlich VBS. Dafür gibt es wohl einen Wrapper der APIs unter VBS zugänglich machen soll. Aber ist auch egal. Der Weg in A3 mit FSUTIL dürfte der einfachste sein.

Antwort 8 von PSI-User vom 26.01.2022, 21:10 Options

Zitat:
Nein, das (VB) hatte ich nicht im Hinterkopf sondern tatsächlich VBS.

VBS kann es nicht sein, sondern nur ActiveX. Ob durch VB oder eine andere Sprache erzeugt, macht ja nicht den Unterschied.

Laut Google meinst du wahrscheinlich das wshAPIToolkit von Clarence Washington Jr.. Der hat seinen Laden allerdings leider dicht gemacht.

Die Abfrage funktioniert jetzt. Vielen Dank!

Ähnliche Themen

XP Bootlogo verändert
Michael8  13.02.2009 - 170 Hits - 7 Antworten

Freien Speicher erhalten
johnthebrille  27.02.2009 - 82 Hits - 13 Antworten

Speicherplatz voll !
Becks34  19.11.2009 - 203 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026