2012-04-11 5 views
2

Apache의 FileUtils에서 메소드가 동기 (차단) I/O를 수행합니까?Apache의 FileUtils에있는 메소드가 동기식 (차단) I/O일까요?

FileUtils를 호출하고 있습니다. copyDirectoryToDirectory. 다음 줄에서는 복사 한 디렉토리를 삭제하고 싶습니다.

예 :

FileUtils.copyDirectoryToDirectory(source, destination); 
FileUtils.deleteDirectory(source); 

그냥 I/O가 발생되지 않습니다이다 "안전"과 비동기 (비 차단) 있는지 확인하려면.

감사합니다.

답변

2

두 가지 :

  1. FileUtilsApache Commons IO library에서 클래스, 표준 JDK의 일부가 아닙니다.
  2. 언급 한 작업은 이 아닙니다.은 비 차단 IO를 사용합니다.

귀하의 질문에 답하기 위해 귀하의 전반적인 작동이 안전합니다.

+0

정말 고마워요. 내가 요청한 이유는 두 번째 줄을 실행 한 후에 때때로이 오류가 발생하기 때문입니다. java.io.IOException : 디렉토리 을 삭제할 수 없습니다. 왜 아직 확실하지 않습니다. –

+0

읽어야합니다. 디렉터리를 삭제할 수 없습니다. 별로 도움이되지 않는 메시지입니다. 우리는 그것이 잠겨있는 디렉토리 내부의 파일 때문일 것으로 생각하고 있습니다. 파일/디렉토리는 Mac OS X 시스템에 저장됩니다. OS를 10.4에서 10.6으로 업그레이드 한 후 사용자가 Google 시스템을 사용하여 시도하고 삭제할 때 간혹이 오류가 발생합니다. 이 시점에서 로컬 시스템에서이 문제를 복제 할 수 없으므로이를 디버깅하는 방법을 모릅니다. –

+0

파일 핸들이 여전히 OS 레벨에서 열려있는 경우, 복사와 삭제 사이에 약간의 지연을 시도 할 수 있습니다. 또한 사용자가 다른 프로그램에서 열리는'source' 디렉토리에 어떤 파일도 갖지 않을 것이라는 보장이 있습니까? – Perception