![]() |
Größe einer Datei bestimmen
Hallo.
Ich hab eine Datei file.dat. Ich möchte die Größe der Datei ermitteln und dann in einer Statistik ausgeben. Wie kann ich die Größe einer Datei festellen? Vielen Dank schonmal. |
Re: Größe einer Datei bestimmen
Delphi-Quellcode:
function GetFileSize(szFile: String): Cardinal;
var fFile: THandle; wfd: TWIN32FINDDATA; begin result := 0; if not FileExists(szFile) then exit; fFile := FindFirstfile(pchar(szFile),wfd); if fFile = INVALID_HANDLE_VALUE then exit; result := (wfd.nFileSizeHigh*(MAXDWORD))+wfd.nFileSizeLow; windows.FindClose(fFile); end; |
Re: Größe einer Datei bestimmen
Hi!
Dazu sagt die Hilfe: Zitat:
Ciao fkerber |
Re: Größe einer Datei bestimmen
Hm. Und warum verschweigst du ihm den Rest:
Zitat:
Die größe von binären Dateien kann man so nicht bestimmen! |
Re: Größe einer Datei bestimmen
Hi!
Das lag daran, dass ich den Rest nicht gelesen hatte :oops: :oops: Sorry, war keine Absicht, aber ich dachte das wären nur weitere Erläuterungen. Gudd, dass es Moderatoren gibt, die doch etwas mehr Erfahrung haben. Also Merkregel: :arrow: Hilfe immer ganz lesen :lol: Ciao fkerber |
Re: Größe einer Datei bestimmen
Jo danke es funktioniert. :thuimb:
|
Re: Größe einer Datei bestimmen
Alternativ kannst du die Datei auch in einen Stream laden und die Eigenschaft Size nutzen.
|
Re: Größe einer Datei bestimmen
Das ist noch besser, da ich sowieso die Datei als Stream lade und speicher.
|
AW: Re: Größe einer Datei bestimmen
Sorry, aber ich hab da eine Kleinigkeit entdeckt.
Zitat:
![]() Der erste Punkt ist, dass hier anscheinend besonders große Werte nicht richtig zurück gegeben werden. Meine eigene Funktion hatte übrigens auch den gleichen Größe-Fehler, deshalb begab ich mich auf die Suche. Ich hab eine etwa 6,8 GB Datei geprüft und bekam in beiden Fällen etwa 2,5 GB zurück. Vielleicht gab es 2004 noch nicht so große Dateien um es zu testen. Das Problem könnte evtl. das Problem lösen:
Delphi-Quellcode:
Der zweite Punkt ist evtl. das hier: (MAXDWORD). Laut MS sollte es (MAXDWORD+1) sein. Aber die +1 verkraftet Delphi nicht. Der Fehler ist aber nur paar Byte.
function GetFileSize4(szFile: String): Int64;
.. begin .. result := (Int64(wfd.nFileSizeHigh)*(MAXDWORD))+Int64(wfd.nFileSizeLow); //Edit: Ich sehe gerade, dass in meinem alten API Buch auch nur (MAXDWORD) steht. Der Fehler liegt also eher da. |
AW: Re: Größe einer Datei bestimmen
Zitat:
Bei 10 * 4 gb gibt er 10 Byte -demnach- weniger zurück.. unverkraftbar! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz