ApacheCommons1.4.1ライブラリを使用して".tar.gz"
ファイルを圧縮および解凍しています。
最後のビットで問題が発生しています-aを。に変換TarArchiveInputStream
しFileOutputStream
ます。
奇妙なことに、それはこの線を破っています:
FileOutputStream fout = new FileOutputStream(destPath);
destPath
は、次の正規パスを持つファイルです:C:\ Documents and Settings \ Administrator \ My Documents \ JavaWorkspace \ BackupUtility \ untarred \ Test \ subdir \ testinsub.txt
生成されたエラー:
Exception in thread "main" java.io.IOException: The system cannot find the path specified
それが何であるかについて何か考えはありますか?そして、なぜそれは道を見つけることができないのですか?
以下にメソッド全体を添付します(ほとんどはここから削除されます)。
private void untar(File dest) throws IOException {
dest.mkdir();
TarArchiveEntry tarEntry = tarIn.getNextTarEntry();
// tarIn is a TarArchiveInputStream
while (tarEntry != null) {// create a file with the same name as the tarEntry
File destPath = new File(dest.toString() + System.getProperty("file.separator") + tarEntry.getName());
System.out.println("working: " + destPath.getCanonicalPath());
if (tarEntry.isDirectory()) {
destPath.mkdirs();
} else {
destPath.createNewFile();
FileOutputStream fout = new FileOutputStream(destPath);
tarIn.read(new byte[(int) tarEntry.getSize()]);
fout.close();
}
tarEntry = tarIn.getNextTarEntry();
}
tarIn.close();
}