다음 작업이 있습니다. 파일이 바쁜 동안 파일을 편집한다 : 편집 파일로파일 편집이 끝날 때까지 기다려주십시오.
function FileIsBusy(AFileName: string): Boolean;
var
F: Integer;
begin
F := FileOpen(AFileName, fmShareExclusive);
Result := F = -1;
FileClose(F);
end;
function WaitFile(AFileName: string; ASpeepDelay: integer): Boolean;
begin
while FileIsBusy(AFileName) do
Sleep(ASpeepDelay);
Result := True;
end;
이 접근 좋은 일을 마이크로 소프트 워드가 아니라 오픈 오피스에서 마이크로 소프트 오피스 뒤져 다음 기존의 방법을 사용하는 편집의 끝의 대기 할 필요가있다. 오픈 오피스 (OpenOffice)는 MS 오피스와 마찬가지로 오픈 멀티 플리 티 파일을위한 하나의 프로세스를 사용합니다. 하지만 OpenOffice Writer에는 몇 가지 문제가 있습니다. FileIsBusy 함수는 OpenOffice Writer로 첫 번째 저장 파일 바로 뒤에 false를 반환합니다. 제안이 있으십니까?
============================
내가 다음 해결 방법을 찾을 :
repeat
WaitFile(FFileInfo.lpFile, 333);
Sleep(1000);
until not FileIsBusy(FFileInfo.lpFile);
보존 후를 , ОО 한동안 파일을 해제하고 독점적으로 공유하십시오
저는 ProcessMonitor를 사용합니다. OpenOffice는 주 파일 저장까지 파일을 잠급니다. –