2011-09-22 4 views
10

File.mkdir() 또는 File.mkdirs() 중 하나를 Java로 호출하고 false을 반환하는 경우 왜 디렉토리가 생성되지 않았는지 알 수있는 방법이 있습니까?File.mkdirs() 오류의 원인 발견

+2

나는'mkdir()'이 왜 그렇게했는지 궁금해했다. – NPE

+1

'delete()'와 동일하지만 부울을 반환합니다. 'SecurityException'이 아닌 경우 실패한 이유에 대한 표시가 없습니다. –

답변

4

아니요. SecurityException을 던지지 않은 경우 경로의 오타가 발생할 가능성이 높습니다. 즉, 실수로 새 디렉토리에 대한 상위 경로가 잘못 지정된 것입니다. 당신이 던져되고있는 SecurityException을 모르고 어디 SecurityException의 조상을 잡고 있기 때문에

나는 당신이 할, 당신은 그것이 try { ... } catch (Exception e) 블록에 싸여 있다고 가정하지?

당신이 모든 것이 옳다는 믿음이 강하고 여전히 실패하는 경우, 간단히 말해서 루프를 반복하여 3 번 반복 할 수 있다고 생각합니다. 여전히 실패하고 응용 프로그램에 따라 UI 수준에서 경고를 발생 시키거나 로그 파일에 오류를 기록 할 수 있습니다 (쓰기 가능하다고 가정).

더 심각한 I/O 문제로 인해 작동하지 않을 수도 있지만 단순히 사용자에게 오류를 알리는 것 이상으로 응용 프로그램 수준에서 수행 할 수있는 작업은 많지 않습니다. I/O 오류가 더 깊어지면 시스템/하드웨어/OS에 문제가 있거나 서브 시스템/서비스 충돌과 같은 제어 기능이 전혀없는 문제가 발생할 수 있습니다.

... 그런 일이 발생하면 IT 담당자가 응용 프로그램이 아니라 수정해야 할 책임이 있습니다. 물론 응용 프로그램이 어떻게 든 충돌을 일으키지 않는 한.

+2

아니, 그건 사실이 아니야. 나는 문제를 발견했다. (부모 디렉토리는 클러스터의 한 노드에서 잘못된 소유자를 가졌다.)하지만 그것은 다른 층으로 가야하고, 네트워크 관리자에게 이야기하고, 누군가에게 나에게 ssh 세션을 제공하도록 요청하고, 마지막으로' mkdir 내/결함/경로'. 나는 그것을하는 더 실제적인 방법을 바랐다 ... – brandizzi

+0

자, 거기에 - IT 남자 문제. :) – jefflunt

+1

하하, 확실히 :)하지만 Java는 도움이되지 않았습니다 ... – brandizzi

관련 문제