Ati incercat vreodata sa deschideti un fisier care era deja deschis de o alta aplicatie ? Mai tineti minte ce eroare ati primit ? :D
In Pascal se putea verifica daca un fisier e in uz sau nu cu directiva de compilare $I, necesitand apoi, dupa incercarea de deschidere a fisierului, sa se verifice variabila IOResult.
O alta varianta care determina daca un fisier e sau nu deschis de alta aplicatie, folosind API, e data mai jos.
function FileInUse(FileName: string): Boolean;
var hFil: HFILE;
begin
Result := False;
If not FileExists(FileName)
then Exit;
hFil := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Result := (hFil = INVALID_HANDLE_VALUE);
If Not Result
Then CloseHandle(hFil);
end;Keep away from (already) opened files :)