驱动器已满或空间不足的IOException

时间:2009-06-08 18:41:13

标签: java ioexception

我正在查找特定于平台(特定于JRE)的IOException消息列表,指示磁盘已满或空间不足。

到目前为止,我有:

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

我希望Java能为此创建一个IOException子类......

2 个答案:

答案 0 :(得分:9)

措辞实际上是系统消息,而不是来自JRE的消息。 (POSIX兼容将返回“空间不足”)

因此,您最好的办法是获取您要定位的操作系统的系统错误消息列表。

或者,当抛出异常时,您可以检查磁盘上是否还有剩余空间。

来自apache commons IO:

FileSystemUtils.freeSpaceKb(String path);

将返回驱动器/卷上的可用空间(或者甚至可能抛出IOException!)

答案 1 :(得分:2)

至于为什么没有IOException子类,我怀疑操作系统文件调用在足够的情况下没有提供足够的信息,以便Java在不解析错误消息的情况下知道错误是什么(非常脆弱最好的运作)。对于许多io调用,这可能是正确的。