2009-06-08 9 views
9

Je recherche une liste de messages IOException spécifiques à la plate-forme (JRE) indiquant que le disque est plein ou manque d'espace.IOException pour un lecteur plein ou en dehors de l'espace

Jusqu'à présent, j'ai:

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

Je souhaite Java serait une sous-classe IOException pour cela. ..

+1

Votre question est « Quel est le hors espace disque message sur d'autres systèmes d'exploitation? » –

+0

Oui, quelle est la question ici? –

Répondre

7

Le libellé est en fait un message système e, pas un de l'JRE. (POSIX conforme retournera "Pas assez d'espace")

En tant que tel, votre meilleur pari est d'obtenir une liste de messages d'erreur système pour le système d'exploitation que vous ciblez.

Alternativement, lorsque l'exception est levée, vous pouvez vérifier s'il reste de l'espace sur le disque.

De la Chambre des communes apache IO: (! Ou peut-être même jeter un IOException)

FileSystemUtils.freeSpaceKb(String path); 

retournera espace libre sur le lecteur/volume

0

Quant à savoir pourquoi il n'y a pas une sous-classe IOException, je soupçonne que l'appel de fichier du système d'exploitation ne donne pas assez d'informations dans suffisamment de cas pour que Java sache quelle est l'erreur sans analyser le message d'erreur (une opération très fragile au mieux). C'est probablement vrai d'un certain nombre d'appels io.

1

Je trouve les messages suivants:

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