Entwickler-Ecke
Dateizugriff - Ermitteln ob Datei geöffnet ist
Jacdelad - Sa 13.05.06 13:01
Titel: Ermitteln ob Datei geöffnet ist
Hallo,
gibt es eine Funktion mit der man ermitteln kann, ob eine Datei (Variable vom Typ file oder textfile) geöffnet ist?
Jac
Moderiert von
Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 14.05.2006 um 11:49
azubi_20 - Mo 15.05.06 08:57
Hi
du könntest versuchen, auf die Datei zuzugreifen. Mit nem Try-Exceptblock kannst du dann prüfen ob es geklappt hat. Wenn nicht -> Datei ist geöffnet. (könnte aber auch schreibgeeschützt sein)
DaKirsche - Mo 15.05.06 09:22
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function IsFileInUse(Path: string): boolean; var hFile: THandle;
begin Result := False; if not FileExists(Path) then Exit;
hFile := CreateFile(pchar(Path), 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; |
Aufgerufen werden kann die Funktion Beispielsweise so:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.Button1Click(Sender: TObject); begin if IsFileInUse(Application.Exename) then Showmessage('Die Datei ist in Benutzung'); end; |
Jacdelad - Mo 15.05.06 17:27
Ähh, danke für die Hilfe!
Ich meinte eine Datei, die unter Umständen von meinem Programm geöffnet ist (sorry, das hab ich leider vergessen zu erwähnen), deshalb hab ichs jetzt über ein Boolean gelöst, das erscheint mir am einfachsten.
Danke,
Jac
IceFire - Mo 22.05.06 15:10
Hallo!
Habe die Funtion gerade eingebaut, allerdings habe ich damit ein Problem. Wenn ich damit versuche, auf freigegebene Dateien im Netzwerk ('\\196.0.0.8\II\readme.txt') zuzugreifen, meldet mir die Funktion immer, dass die Datei geöffnet ist.
Wie ist die Funktion zu modifizieren, damit Netzwerkressourcen auch geprüft werden können?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!