문제

디스크가 전체 또는 공간을 벗어난 IOException 메시지의 플랫폼 특정 (JRE- 특이 적) 목록을 찾고 있습니다.

지금까지 나는 다음과 같습니다.

  • Windows : There is not enough space on the disk
  • Solaris/Linux? : Not enough space
  • GCJ : No space left on device

나는 Java가 이것을 위해 ioexception 서브 클래스를 만들기를 바랍니다 ...

도움이 되었습니까?

해결책

문구는 실제로 JRE의 메시지가 아니라 시스템 메시지입니다. (Posix Compliant는 "충분한 공간이 아님"을 반환합니다)

따라서 가장 좋은 방법은 타겟팅중인 OS에 대한 시스템 오류 메시지 목록을 얻는 것입니다.

또는 예외가 발생하면 디스크에 공간이 남아 있는지 확인할 수 있습니다.

Apache Commons IO에서 :

FileSystemUtils.freeSpaceKb(String path);

드라이브/볼륨에서 여유 공간을 반환합니다 (또는 아마도 ioexception을 던질 수도 있습니다!)

다른 팁

왜 없는지에 관해서 IOException 서브 클래스, 나는 운영 체제 파일 호출이 Java가 오류 메시지를 구문 분석하지 않고 오류가 무엇인지 알 수있는 충분한 정보를 충분히 제공하지 않는다고 생각합니다 (매우 연약한 작업). 이것은 아마도 많은 IO 호출에 해당 될 것입니다.

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