У нас есть клиент-серверное программное обеспечение, которое необходимо обновить. Мне нужно проверить, доступен ли файл в данный момент. Это возможно, если так, как Delphi код, если это возможно. Единственное место, где я могу видеть, открыт ли файл, находится в общих папках открытых файлов. Я пробовал этот код, но просто показывает, что файл не открыт.
function TfrmMain.FileInUse(FileName: string): Boolean;
var H_File : HFILE;
begin
Result := False;
if not FileExists(FileName) then
begin
showmessage ('Doesnt Exist');
exit;
end;
H_File := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0,
nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Result := (H_File = INVALID_HANDLE_VALUE);
showmessage('Opened');
if not Result then
CloseHandle(H_File);
end;