2009-06-08 13 views
9

Szukam listy specyficznych dla platformy (zależnych od JRE) komunikatów IOException wskazujących, że dysk jest pełny lub nie ma w nim miejsca.Wyjątek IOException dla dysku pełnego lub poza nim

Do tej pory mam:

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

życzę Java stałaby podklasy IOException do tego. ..

+1

Więc pytanie brzmi: „Co się komunikat o braku miejsca na dysku na innych systemach operacyjnych?” –

+0

Tak, jakie jest aktualne pytanie? –

Odpowiedz

7

Sformułowanie to w rzeczywistości komunikat systemowy e, nie jeden z JRE. (Zgodność z POSIX zwróci "Za mało miejsca")

Jako takie, najlepiej jest uzyskać listę komunikatów o błędach systemowych dla systemu operacyjnego, na który kierujesz.

Alternatywnie, po zgłoszeniu wyjątku można sprawdzić, czy na dysku pozostało wolne miejsce.

Od Apache Commons IO: (! A może nawet rzucić IOException)

FileSystemUtils.freeSpaceKb(String path); 

powróci wolnego miejsca na dysku/objętości

0

, dlaczego nie ma IOException podklasa, ja podejrzewa, że ​​wywołanie pliku systemu operacyjnego nie dostarcza wystarczającej ilości informacji w wystarczającym stopniu, aby Java mogła wiedzieć, jaki jest błąd, bez analizowania komunikatu o błędzie (w najlepszym razie bardzo delikatna operacja). Jest tak prawdopodobnie w przypadku wielu wywołań io.

1

znalazłem następujące komunikaty:

"There is not enough space on the disk" 
"Not enough space" 
"No space left on device" 
Powiązane problemy