문제

다음과 같은 "안전한 저장" 작업을 구현했습니다.

  1. 일부 데이터를 임시 파일에 저장 A
  2. 내용 복사 A 최종 목적지로 B
  3. 삭제 A

3단계에서 Mac OS X이 때때로 오류 -47(fBsyErr) 다음을 사용하여 파일을 삭제하려고 할 때 FSDeleteObject.나는 이 파일을 수정하는 유일한 사람이라고 확신하며 파일을 삭제하려고 할 때 OS가 무언가(예: 백그라운드 캐싱 작업)를 수행하여 오류가 발생한 것으로 의심됩니다.

이는 간헐적으로 발생하는 문제입니다.일반적으로 FSDeleteObject 통화는 잘 됩니다.오류 코드가 다시 나타나는 경우 OS에서 재생이 끝나면 "나중에" 파일을 안전하게 삭제하고 싶습니다.

이 번거로운 임시 파일을 삭제하려고 할 때 취하는 가장 좋은 조치는 무엇입니까?

도움이 되었습니까?

해결책

여기 무슨 일이야:

  1. 가장 흔한 원인은 FSDeleteObject 일시적으로 실패 fBsyErr Spotlight가 파일을 인덱싱하는 중이라는 것입니다.파일을 수정한 경우 해당 파일을 닫은 후 다음을 사용하여 즉시 삭제해 보세요. FSDeleteObject, Spotlight 인덱서가 이를 열어서 다음을 얻을 가능성이 높습니다. fBsyErr.
  2. 일부 타사 바이러스 백신 스캐너도 이 문제를 유발할 수 있습니다.수정된 파일을 닫으면 바이러스 백신 스캐너가 즉시 바이러스 검사를 시작합니다.파일을 삭제하려고 해도 계속 확인 중이라면, FSDeleteObject 실패할 것이다 fBsyErr.

각 문제에는 일련의 해결 방법이 있으며 두 가지 모두에 가장 적합한 방법은 다음을 사용하는 것입니다. unlink

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top