Einzelnen Beitrag anzeigen

Benutzerbild von Maya
Maya

Registriert seit: 15. Jun 2011
Ort: Potsdam-Mittelmark
107 Beiträge
 
Delphi 2010 Enterprise
 
#1

IsFileInUse ergibt immer "false"

  Alt 24. Sep 2012, 12:44
Delphi-Version: 2010
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".
Status:
- FIAE
- Rechteinhaberin, ein Rüsselmops sein zu wollen
  Mit Zitat antworten Zitat