Hallo,
welche Größe wird da ausgegeben?
Ich habe eine Datei mit CopyFile() kopiert.
Es gibt in Eigenschaft verschiedener Größen:
"Größe" und "Größe auf Datenträger"
Mit FileSize() bekomme ich die "Größe auf Datenträger" und meine Programm sagt, dass die Dateien ungleich sind (FileSize-Vergleich), obwohl sie gleich sind.
Wie kann ich die tatsächliche Größe vergleichen?
Gruß
MarcelX
FileSize() welche Größe?
FileSize() welche Größe?
Win-10, PB 5.31 (Windows - x86)
Re: FileSize() welche Größe?
Vielleicht verschiedene Dateisysteme/Blocksizes?
- NicTheQuick
- Ein Admin
- Beiträge: 8679
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: FileSize() welche Größe?
FileSize() gibt dir die Byte-genaue Größe deiner Datei. Die Größe auf dem Datenträger ist ziemlich unwichtig. Sie ist nämlich einfach nur die tatsächliche Größe aufgerundet auf die Blockgröße deines Dateisystems. Das heißt eine Datei der Größe 1 Byte verbraucht auf einem Datenträger, der mit einer Blockgröße von 4 kB formatiert wurde, eben genau 4 kB. FileSize() wird dir aber 1 Byte zurückliefern.
Re: FileSize() welche Größe?
Danke für die Erläuterung.
Das bedeutet, wenn ich den benötigte Speicherplatz überprüfen will, reicht den FileSize() nicht aus!
Das bedeutet, wenn ich den benötigte Speicherplatz überprüfen will, reicht den FileSize() nicht aus!
Win-10, PB 5.31 (Windows - x86)
Re: FileSize() welche Größe?
Wenn du den freien Speicherplatz ermitteln möchtest, dann kannst du GetDiskFreeSpaceEx_() benutzen. Damit kannst du u.a. auch die Sektorgröße ermitteln und damit die Dateigröße auf die Sektorgröße/Blockgröße aufrunden.
Weder in PB noch in WinAPI gibt es eine Funktion zum Ermitteln der "echten" Größe einer Datei, die auf der Festplatte tatsächlich belegt, aber du kannst das wie oben beschrieben selber ausrechnen. Im Stackoverflow-Forum gibt es ein paar Codes zum Benutzen: https://stackoverflow.com/questions/375 ... le-on-disk
Falls die Datei vom NTFS komprimiert wurde, kannst du sowohl die komprimierte als auch die originale Dateigröße ermitteln: https://www.rsbasic.de/aktualisierung/w ... mitteln.pb
Weder in PB noch in WinAPI gibt es eine Funktion zum Ermitteln der "echten" Größe einer Datei, die auf der Festplatte tatsächlich belegt, aber du kannst das wie oben beschrieben selber ausrechnen. Im Stackoverflow-Forum gibt es ein paar Codes zum Benutzen: https://stackoverflow.com/questions/375 ... le-on-disk
Falls die Datei vom NTFS komprimiert wurde, kannst du sowohl die komprimierte als auch die originale Dateigröße ermitteln: https://www.rsbasic.de/aktualisierung/w ... mitteln.pb