Einzelnen Beitrag anzeigen

bigg
(Gast)

n/a Beiträge
 
#6

Re: Schreibgeschützte Dateien kopieren?

  Alt 3. Sep 2006, 13:27
moin moin,

Zitat von Christian Seehase:
Was das Handling angeht:
TFileStream kapselt die von Dir genannten Funktionen, die wiederum nur die zugrunde liegenden API-Funktionen kapseln.

Wenn ich jetzt, beispielsweise, die Dateigrösse benötige, finde ich es praktischer die Eigenschaft Size von TFileStream zu benutzen, als sie mir mit Hilfe einer weiteren Funktion auszulesen.
Richtig, allerdings finde ich die Fehlerbehandlung in der Klasse ("TFileStream") nicht sehr gut gelöst. Wie fängt man beispielsweise einen Fehler beim Öffnen einer Datei ab, wenn sie sich nicht öffnen läßt?. Das pandant zu FileOpen() wäre bei der Klasse "TFileStream" die Methode Create() und genau hier könnte es knallen, wenn die Datei bereits geöffnet ist. Was macht man also: Man verschachtelt das ganze mit try..except und try..finally? Oder du zeigst mir, wie man es anders lösen könnte.


PS: Hier noch eine Funktion die Hagen mal gepostet hatte, um Dateigrößen < 4 GB zu lesen:

Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Größe einer Datei ermitteln (auch Dateien über 4 GB)
////////////////////////////////////////////////////////////////////////////////

function GetFileSize(const FileName: String): Int64;
var FileHandle: Cardinal; var Data: WIN32_FIND_DATA;
begin
  Result := -1;
  FileHandle := FindFirstFile(PChar(FileName), Data);
  try
    if FileHandle > 0 then
    begin
      Int64Rec(Result).Hi := Data.nFileSizeHigh;
      Int64Rec(Result).Lo := Data.nFileSizeLow;
    end;
  finally Windows.FindClose(FileHandle);
  end;
end;
  Mit Zitat antworten Zitat