我使用Java的FileSystem将多个文件保存为zip文件。如果没有足够的磁盘空间,我将无法获得java.io.IOException No space left on device
,它的行为就像是成功创建了zip文件一样。
这是我的项目的摘录:
Path pathToZip = Paths.get("path/to/existing/zip");
try(FileSystem fs = FileSystems.newFileSystem(pathToZip, null)) {
// zip some files via
Path pathToSomeFile = Paths.get("path/of/some/file/to/be/zipped");
Files.copy(pathToSomeFile, fs.getPath("/path/of/some/file/to/be/zipped"));
} catch (IOException ex) {
log.error("error on zipping files", ex);
}
FileSystems.newFileSystem(pathToZip, null)
创建一个ZipFileSystem
实例。我已经调试了类sync()
的方法ZipFileSystem
。然后,当java.io.IOException No space left on device
发生时,仅调用x.printStackTrace()
并且异常消失了。
我必须查看哪些选项才能成功写入文件?