Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: FileStream.Size ist negativ (Datei größer als 2GB)

  Alt 20. Mär 2005, 11:57
Zitat von endeffects:
Hallo,
ich hab leider ein Problem beim Einlesen einer Datei (über 2GB) in einen FileStream,
wenn ich mit Hilfe von FileStream.Size die Größe des Streams ermittel möchte erhalte
ich einen negativen Wert. Reicht es diesen Wert in einen positiven umzuwandeln
oder muss eine andere Lösung erhalten?
MfG
In welchem Kontext tritt Dein "Fehler" auf? Mit D7 funktioniert es auf jeden Fall:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   Stream : TFileStream;
begin
   Stream := TFileStream.Create('e:\tlinux4\base.img', fmOpenRead);
   ShowMessage(Format('Filesize %s: %d', ['base.img', Stream.Size]));
   Stream.Free;
end;
Ausgabe:
Code:
---------------------------
Project1
---------------------------
Filesize base.img: 4278190080
---------------------------
OK  
---------------------------
Ansonsten hier eine Funktion zur Rückgabe der Größe einer beliebigen Datei:
Delphi-Quellcode:
function DiskFileSize(FileName : string) : int64;
var
   handle : THandle;
   findData : TWin32FindData;
begin
   Result := -1;

   handle := FindFirstFile( PChar( FileName ), findData );
   if ( handle <> INVALID_HANDLE_VALUE ) then
   begin
      Windows.FindClose( handle );

      if ( ( FindData.dwFileAttributes AND FILE_ATTRIBUTE_DIRECTORY ) = 0 ) then
      begin
         Result := (findData.nFileSizeHigh * MAXDWORD)+ findData.nFileSizeLow;
      end;
   end;
end;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat