WebからZipファイルをダウンロードしています。フォルダーとファイルが含まれます。 ZipInputstream
およびZipEntry
を使用して圧縮解除します。 _Zipentry.getName
_は、ファイル名を_htm/css/aaa.htm
_として提供します。
だから私は新しいFile(zipentry.getName);
を作成しています
しかし、問題は例外をスローすることです:_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()
だけを実行できますが、操作の戻り値を確認することをお勧めします。したがって、最初に既存のディレクトリをチェックし、次に作成が成功したかどうかをチェックします(まだ存在していない場合)。
参照:
Zipファイル内のエントリをループするときに、必要に応じてサブディレクトリを作成する必要があります。
ZipFile zipFile = new ZipFile(myZipFile);
Enumeration e = zipFile.entries();
while(e.hasMoreElements()){
ZipEntry entry = (ZipEntry)e.nextElement();
File destinationFilePath = new File(entry.getName());
destinationFilePath.getParentFile().mkdirs();
if(!entry.isDirectory()){
//code to uncompress the file
}
}
これは私がそれをする方法です
static void ensureFoldersExist(File folder) {
if (!folder.exists()) {
if (!folder.mkdirs()) {
ensureFoldersExist(folder.getParentFile());
}
}
}
File
オブジェクトで.mkdirs()
メソッドを使用するファイルを確認します。 http://www.roseindia.net/Java/beginners/Java-create-directory.shtmlisDirectoryCreated =(new File( "../ path_for_Directory/Directory_Name"))。mkdirs(); if(!isDirectoryCreated) { //ディレクトリ作成に失敗しました }