我希望递归读取压缩文件的内容并将所有找到的文件保存到我的硬盘驱动器。如何阅读压缩文件的内容并保存文件
我读的zip文件是这样的:
def zipFile = new java.util.zip.ZipFile(new File('/Users/birdy/test.zip'))
zipFile.entries().findAll { !it.directory }.each {
def is = zipFile.getInputStream(it)
//how do i store this stream to a file?
}
如果一个zip文件有下列文件:
folder1/test1.txt
folder2/test2.jpg
的话,我希望存储test1.txt
和test2.jpg
我HD
几件事情:首先,'文件可能不存在的'新文件(e.name)的父目录。其次,为什么'withWriter'而不是'withInputStream'?这不是假设的人物数据? – bdkosher 2014-10-20 17:10:11
当涉及到父目录时,如果您在处理zip的相同目录中运行脚本,它将会存在。 Steam改变了。 – Opal 2014-10-20 17:14:11
Zip条目名称不一定是一个深度的路径元素。在某些情况下,条目的父目录需要在本地文件系统上创建,但不幸的是,当你开始向文件写入内容时,这不会自动发生。你需要一个明确的'mkdirs()'调用。 – bdkosher 2014-10-20 17:41:14