파일 (.pdf)과 아주 작은 메타 데이터 파일을 네트워크 위치로 내보내는 Delphi5 응용 프로그램이 있습니다. 이 두 파일은 폴링 .NET 응용 프로그램에서 처리하고 제거해야합니다.예기치 않은 'File In Use'오류가 발생할 수있는 이유
내 접근 방식은
을에 .dat하기 위해 .part 파일 이름 바꾸기 .PDF
- 이다 .NET 프로세스는 확장자가 '.dat'인 파일 만 찾고 있으므로 두 개의 리더/라이터간에 충돌이 없을 것으로 예상됩니다. 그러나, .NET 프로세스가 때때로 다음과 같은 오류를 로깅 ...
는 (I 가끔 말 - 우리가 현재 볼륨이이 문제의 훨씬 더 될 수 증가 그렇게 할 때, 테스트)System.IO.IOException: The process cannot access the file '\\server\Path\FileName.dat' because it is being used by another process.
델파이 코드는 다음과 같다 :
AssignFile(FTextFile, Format('%s\%s.part', [DMSPath, FullFileName])); try try ReWrite(FTextFile); Writeln(FTextFile, MetaDataString); finally CloseFile(FTextFile); end; except raise ELogFileException.Create(LOGFILEWRITEFAILURE); end;
그럼 다음 줄의 코드를 실행하는 별도의 방법이
12,이 코드 본질적으로 잘못 아무것도 볼 수없고 우리가 염두에두고 치료의 몇 가지있다,하지만 난
- 가 좀 더 안정적으로 파일 '.DAT'를 보호하기 위해 다른 방법을 시도해야 2 개 질문이 그것이 완전히 준비 될 때까지
- 어떤 상황이 이것을 일으킬 수 있습니까? 바이러스 백신 소프트웨어 -
지금까지 한 건의 원인이되고있다.
파일이 어떻게 다르게 생성 될지에 대한 제안 사항이 있으십니까? 내 응용 프로그램은 Delphi5입니다. 나는 내가 사용할 수있는 'MoveFileA'WinApi 호출의 더 새로운,보다 원자적인 버전이 있는지 궁금해했다.
일반적인 원인은 내 AV 소프트웨어입니다. –
감사합니다. @David - 나는 그것에 대해 생각하지 않았습니다. –
Windows Search가이 문제의 원인 이었지만 최근에 보았으므로 지금 고칠 수도 있습니다. 이것이 원인 일 경우, 작성한 파일에 "색인하지 않음"속성을 설정하여 문제를 해결할 수 있습니다. – arx