Delphi-Quellcode:
function IsFileInUse(const FileName: String): Boolean;
var HFileRes : HFILE;
begin
HFileRes := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
Result := HFileRes = INVALID_HANDLE_VALUE;
CloseHandle(HFileRes);
end;
Da FileExists FALSE liefert, wenn Datei nicht existiert, ist dieses vollkommend zureichend.
Und bist du dir mir dem Schreibschutz sicher?
Jedefalls hat der Schreibschutz, solange nicht das Laufwerk geschützt ist (z.B. CD, oder schreibgeschützte Diskette/Speicherstick) keinen einfluß auf CreateFile
Hier hast du übrigens die letzte Diskusion zu diesem Thema:
http://www.delphipraxis.net/internal...ct.php?t=97888
Also ganz sicher ist es nicht möglich etwas über den Zugriff zu sagen, aber für die meisten Fälle ist diese Variante ausreichend.
PS: wie wird denn die Datei bei der MD5-Berechnung geöffnet?
Da könntest du es ja mal ohne Schreibzugriff und/oder nicht Exklusiv versuchen