![]() |
Re: Größe auf dem Datenträger ermitteln.
Zitat:
ich habe das ganze jetzt mal erweitert:
Delphi-Quellcode:
function GetRealFileSize(const aFileName: string): Cardinal;
{**********************************************************} // Diese Funktion ist von Daniel B. aus der Code-Library // [url]http://www.delphipraxis.net/post52937.html#52937[/url] // Es wird geprüft ob ein Windows auf NT-Basis läuft function NTSystem: Boolean; var OsVinfo: TOSVERSIONINFO; begin result := False; ZeroMemory(@OsVinfo, SizeOf(OsVinfo)); OsVinfo.dwOSVersionInfoSize := SizeOf(TOSVERSIONINFO); if GetVersionEx(OsVinfo) then begin if OsVinfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin result := True; end end; end; {**********************************************************} // Diese Funktion ist von Luckie aus der Code-Library // [url]http://www.delphipraxis.net/post191286.html#191286[/url] // Ermittelt die Grösse einer Datei function GetFileSize(const szFile: String): Int64; 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; {**********************************************************} var ClusterSize: Cardinal; SectorPerCluster: Cardinal; BytesPerSector: Cardinal; NumberOfFreeClusters: Cardinal; TotalNumberOfClusters: Cardinal; filesize: Cardinal; realsize: Cardinal; drive: string; begin drive := ExtractFileDrive(aFileName) + '\'; if (NTSystem) then begin filesize := GetCompressedFileSize(PAnsiChar(aFileName), @filesize); end else begin filesize := GetFileSize (aFileName); end; realsize := 0; if (filesize <> $FFFFFFFF) then begin GetDiskFreeSpace(PChar(drive ), SectorPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters); ClusterSize := SectorPerCluster * BytesPerSector; if not ((filesize mod clustersize) = 0) then begin realsize := ((filesize div clustersize) * clustersize) + clustersize end else begin realsize := filesize; end; end; result := realsize; end; |
Re: Größe auf dem Datenträger ermitteln.
Siehe auch
![]() Gruß Stephan :dance: |
Re: Größe auf dem Datenträger ermitteln.
Zitat:
Warum habe ich das übersehen? Da hätte ich mir die Arbeit heute sparen können ;-) |
Re: Größe auf dem Datenträger ermitteln.
Zitat:
Wollt's noch hier rein posten, habs aber wohl gestern bissl vergessen... :mrgreen: Gruß Stephan :dance: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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