Hallo Leute,
ist Euch schon mal aufgefallen, daß der Typ TSearchRech nicht mehr zeitgemäß deklariert ist?
<pre>
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData; (* --> ... nFileSizeHigh: DWORD; und nFileSizeLow: DWORD; ... *)
end;
</pre>
Das Problem ist "Size", hier wird mit Integern gearbeitet. Bei mir ist nun das erste Mal der Fall aufgetreten, daß ich eine knapp 4 GB (3.883.597.824 Bytes) große Datei habe. Nun gibt mir TSearchRec negative Zahlen zurück.
Gibt es da ein Workaround dafür? Oder eine Alternative für FindFirst, FindNext, FindClose? <br>Ich benutze erstmal vorübergehend
<pre> s.FindData.nFileSizeLow (DWORD) </pre>
anstelle von
<pre> s.Size </pre>
Nun stellt sich mir die Frage, wie ich nFileSizeLow und nFileSizeHigh zusammenführen muss, damit ich einen Int64 bekomme. Kann mir da jemand helfen? Ausprobieren kann ich es noch nicht, da meine Dateigröße (noch) unterhalb 4 GB liegt.
Gruß
ist Euch schon mal aufgefallen, daß der Typ TSearchRech nicht mehr zeitgemäß deklariert ist?
<pre>
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData; (* --> ... nFileSizeHigh: DWORD; und nFileSizeLow: DWORD; ... *)
end;
</pre>
Das Problem ist "Size", hier wird mit Integern gearbeitet. Bei mir ist nun das erste Mal der Fall aufgetreten, daß ich eine knapp 4 GB (3.883.597.824 Bytes) große Datei habe. Nun gibt mir TSearchRec negative Zahlen zurück.
Gibt es da ein Workaround dafür? Oder eine Alternative für FindFirst, FindNext, FindClose? <br>Ich benutze erstmal vorübergehend
<pre> s.FindData.nFileSizeLow (DWORD) </pre>
anstelle von
<pre> s.Size </pre>
Nun stellt sich mir die Frage, wie ich nFileSizeLow und nFileSizeHigh zusammenführen muss, damit ich einen Int64 bekomme. Kann mir da jemand helfen? Ausprobieren kann ich es noch nicht, da meine Dateigröße (noch) unterhalb 4 GB liegt.
Gruß
Comment