2009-06-08 2 views
9

Sto cercando un elenco di specifici di piattaforma (specifici per JRE) di messaggi IOException che indicano che il disco è pieno o fuori spazio.IOException per unità piena o senza spazio

Finora ho:

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

Vorrei Java farebbe una sottoclasse IOException per questo. ..

+1

Quindi la tua domanda è: "Qual è il messaggio out-of-spazio su disco su altri sistemi operativi?" –

+0

Sì, qual è la domanda attuale qui? –

risposta

7

Il testo è in realtà un messaggio di sistema e, non uno dal JRE. (Conforme a POSIX restituirà "Spazio insufficiente")

In questo modo, la soluzione migliore è ottenere un elenco di messaggi di errore di sistema per il sistema operativo "targetizzato".

In alternativa, quando viene generata l'eccezione, è possibile controllare se è presente spazio sul disco.

Da commons apache IO: (! O forse anche buttare un IOException)

FileSystemUtils.freeSpaceKb(String path); 

torneranno spazio libero sul disco/volume di

0

Per quanto riguarda il motivo per cui non v'è una sottoclasse IOException, ho si sospetta che la chiamata al file del sistema operativo non fornisca informazioni sufficienti in casi sufficienti affinché Java possa sapere qual è l'errore senza analizzare il messaggio di errore (un'operazione alquanto fragile). Questo è probabilmente vero per un certo numero di chiamate io.

1

ho trovato i seguenti messaggi:

"There is not enough space on the disk" 
"Not enough space" 
"No space left on device"