2009-06-08 8 views
9

Estoy buscando una lista de mensajes específicos de la plataforma (específicos de JRE) de IOException indicando que el disco está lleno o sin espacio.IOException para unidad llena o sin espacio

hasta ahora tengo:

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

deseo de Java sería una subclase IOException para esto. ..

+1

Entonces, la pregunta es "¿Cuál es el mensaje fuera de espacio en disco en otros sistemas operativos?" –

+0

Sí, ¿cuál es la pregunta real aquí? –

Respuesta

7

La redacción es en realidad un mensaje del sistema e, no uno del JRE. (Compatible con POSIX devolverá "No hay espacio suficiente")

Como tal, su mejor opción es obtener una lista de los mensajes de error del sistema para el sistema operativo al que se dirige.

Alternativamente, cuando se lanza la excepción, puede verificar si queda espacio en el disco.

de los campos comunes de Apache IO: (o tal vez incluso lanzar una IOException)

FileSystemUtils.freeSpaceKb(String path); 

volverá espacio libre en la unidad/volumen

0

cuanto a por qué no hay una subclase IOException, me sospecha que la llamada al archivo del sistema operativo no proporciona suficiente información en suficientes casos para que Java sepa cuál es el error sin analizar el mensaje de error (una operación muy frágil en el mejor de los casos). Esto es probablemente cierto para varias llamadas io.

1

me encontré con los siguientes mensajes:

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