AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateigröße ermitteln, wie geht Ihr vor?

Ein Thema von Fukiszo · begonnen am 25. Jan 2018 · letzter Beitrag vom 27. Jan 2018
 
Fukiszo
(Gast)

n/a Beiträge
 
#8

AW: Dateigröße ermitteln, wie geht Ihr vor?

  Alt 26. Jan 2018, 11:47
Danke für all eure Vorschläge und Mühe

Code:
// von LTE5
function lwFileSize(const aFileName: string): Int64;
var
 FileInfo: TWin32FileAttributeData;
begin
 Result := -1;
 FillChar(FileInfo, SizeOf(FileInfo), 0); // das hier evtl weglassen, muss ich selbst erst nachvollziehen können warum
 if GetFileAttributesEx(PChar(aFileName), GetFileExInfoStandard, @FileInfo) then
  begin
   Int64Rec(Result).Hi := FileInfo.nFileSizeHigh;
   Int64Rec(Result).Lo := FileInfo.nFileSizeLow;
  end;
end;
das hier klappt wie gewünscht (bei "file not found" = -1) für mich und die routine arbeitet wirklich schneller
wobei ich total geneigt bin auch das hier dafür zu verwenden:

Code:
// von mehreren DP teilnehmern, hier kann man rückgabewert verintensivieren
// (für externe fehlerbestimmung ist's so besser, sonst evtl dutzende fehlermeldungen falls in einer loop aufgerufen)
// -1 file not found
// -2 general error
// >= 0 filesize in byte
function lwFileSize(const fileName: String): Int64;
var
   info: TWin32FileAttributeData;
begin
   if not GetFileAttributesEx(PChar(fileName), GetFileExInfoStandard, @info) then // tatsächlich pChar ja? (Unicode dingens)
     if GetLastError in [ERROR_FILE_NOT_FOUND, ERROR_PATH_NOT_FOUND] then
       result := -1 //raise EFileNotFoundException.CreateRes(@SFileNotFound)
     else
       result := -2 // RaiseLastOSError;
   Result := Int64(info.nFileSizeLow) or Int64(info.nFileSizeHigh shl 32);
end;
Grüße & Danke
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 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