我正在从网上下载一个zip文件。它包含文件夹和文件。使用解压缩他们ZipInputstream和ZipEntry。Zipentry.getName将文件名指定为htm/css/aaa.htm。
ZipInputstream
ZipEntry
Zipentry.getName
htm/css/aaa.htm
所以我正在创造新的 File(zipentry.getName);
File(zipentry.getName);
但问题是它引发了异常:File not found。我知道它正在创建子文件夹htm和css。
File not found
htm
css
我的问题是:如何通过路径上方创建包含子目录的文件?
用这个:
File targetFile = new File("foo/bar/phleem.css"); File parent = targetFile.getParentFile(); if (!parent.exists() && !parent.mkdirs()) { throw new IllegalStateException("Couldn't create dir: " + parent); }
尽管您可以file.getParentFile().mkdirs()不检查结果而做,但是检查操作的返回值被认为是最佳实践。因此,首先检查现有目录,然后检查是否成功创建(如果尚不存在)。
file.getParentFile().mkdirs()
参考: