Zitat:
Delphi-Quellcode:
FS := TFile.Create(fName);
try
result := true;
finally
FS.Free;
end;
if TFile.Exists(fName) then begin
TFile.Delete(fName);
end;
Exists ist sinnlos, denn wenn es ging, dann existiert die Datei und wenn Create nicht ging, dann kommt das Programm garnicht bis da hin.
Zitat:
Folgendes fängt die Fehlermeldung ab:
Da drin aber auf Keinen Fall auf FS zugreifen, denn der Variable wurde ja nichts zugewiesen.
Delphi-Quellcode:
try
fName := TPath.Combine(ExtractFilePath(fDir), 'test.tmp');
FS := TFile.Create(fName);
try
Result := True;
finally
FS.Free;
TFile.Delete(fName);
end;
except
Result := False;
end;
Delphi-Quellcode:
try
fName := TPath.Combine(ExtractFilePath(fDir), 'test.tmp');
TFile.WriteAllText(Name, '');
TFile.Delete(fName);
Result := True;
except
Result := False;
end;
Direkt mit der
WinAPI ist's hier aber "schöner", da man dann die Exceptions nicht hat, sondern nur schön stille Result-Werte.
Delphi-Quellcode:
fName := TPath.Combine(ExtractFilePath(fDir), 'test.tmp');
H := CreateFile(PChar(fName), GENERIC_WRITE, 0, nil, {CREATE_ALWAYS} CREATE_NEW, {0} FILE_ATTRIBUTE_TEMPORARY, 0);
CloseHandle(H);
//DeleteFile(PChar(fName)); // nicht nötig, da FILE_ATTRIBUTE_TEMPORARY, womit Windows die Datei automatisch löscht
Result := H <> INVALID_HANDLE_VALUE;
Ein Therapeut entspricht 1024 Gigapeut.