驱动器已满或空间不足时出现 IOException
我正在寻找特定于平台(特定于 JRE)的 IOException 消息列表,指示磁盘已满或空间不足。
到目前为止,我有:
- Windows:
磁盘上没有足够的空间
- Solaris/Linux?:
空间不足
- GCJ:
设备上没有剩余空间
我希望 Java 能够为此创建一个 IOException 子类...
I am looking for a list of platform-specific (JRE-specific) of IOException messages indicating disk is full or out of space.
So far I have:
- Windows:
There is not enough space on the disk
- Solaris/Linux?:
Not enough space
- GCJ:
No space left on device
I wish Java would make an IOException subclass for this...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该措辞实际上是一条系统消息,而不是来自 JRE 的消息。 (符合 POSIX 标准的将返回“空间不足”)
因此,最好的选择是获取目标操作系统的系统错误消息列表。
或者,当引发异常时,您可以检查磁盘上是否还有剩余空间。
来自 apache commons IO:
将返回驱动器/卷上的可用空间(或者甚至可能抛出 IOException!)
The wording is actually a system message, not one from the JRE. (POSIX compliant will return "Not enough space")
As such, your best bet is to get a list of system error messages for the OS' you are targeting.
Alternatively, when the exception is thrown, you could check to see if there is any space remaining on the disk.
From the apache commons IO:
will return free space on the drive/volume (or maybe even throw an IOException!)
至于为什么没有
IOException
子类,我怀疑操作系统文件调用在足够的情况下没有给出足够的信息让Java在不解析错误消息的情况下知道错误是什么(一个非常脆弱的错误信息)最好的操作)。 许多 io 调用可能都是如此。As to why there is not a
IOException
subclass, I suspect that the operating system file call does not give enough information in enough cases for Java to know what the error is without parsing the error message (a very fragile operation at best). This is probably true of a number of io calls.