Hallo ihr Lieben,
bei meinen aktuellen Projekt möchte ich ja
CSV-Dateien in eine Datenbank einlesen. Klappt ja alles, aber ich möchte nun vorher abfragen, ob die Datei schon geöffnet ist oder nicht. Also gegoogelt und bin auf die Funktion
Ist eine Datei in Benutzung vom Delphi-Treff gestoßen. Das Einpflegen war ja nicht das Prob, aber nun zeigt er bei mir generell an, dass die Datei nicht in Benutzung ist. Problem an der Sache ist ja natürlich, wenn die Datei im Hintergrund aber geöffnet ist, z.B. per Excel, beim Lesen der Datei eine Fehlermeldung kommt. -.-
Hier noch mal der Code aus meiner
Unit:
Delphi-Quellcode:
function IsFileInUse(aDateiname: string): Boolean;
var hFile: THandle;
begin
Result:=False;
if not FileExists(aDateiname) then Exit;
hFile:=CreateFile(PChar(aDateiname), GENERIC_READ or GENERIC_WRITE or GENERIC_EXECUTE
,0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Result:=hFile=INVALID_HANDLE_VALUE;
if not Result then CloseHandle(hFile);
end;
Fragen, Anregungen, Wünsche sind wie immer gern gesehen.
Interessanterweise, als ich die Zeile
Code:
if not FileExists(aDateiname) then Exit;
noch draußen hatte, ergab die Funktion grundsätzlich "true".