Hallo,
um bei Dateien mit internationalen Schriftzeichen die Dateigröße ermitteln zu können, habe ich folgenden Code geschrieben:
Delphi-Quellcode:
function GetFileSize(const FileName: widestring): Int64;
var H: THandle;
D: TWIN32FindDataW;
begin
H:= FindFirstFileW(PWideChar(FileName),D);
if H<>INVALID_HANDLE_VALUE then begin
if D.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY=0 then
Result:= (Int64(D.nFileSizeHigh) shl 32) or D.nFileSizeLow
else Result:= 0;
CloseHandle(H); // funktioniert nicht!
end
else Result:= -1;
end;
Allerdings bekomme ich bei CloseHandle(H) immer ein
Exception der Klasse EExternalException. Meldung: 'Externe
Exception C0000008'
Wo ist da der Fehler? Das
Handle muss ich ja freigeben. Aber wie sonst?
Gruß
e-gon