コードを実行してプロジェクト自体のリソースフォルダにあるファイルを使用すると、問題は発生しません。それはファイルを正常に圧縮し、私はWINZIPを使用してそれを抽出することができます。問題は、プロジェクトフォルダにないファイルを圧縮しようとしたときに発生します。ファイルを圧縮する際の問題
私が同じことをすると、私はsrcファイルとdestファイルの両方の絶対パスを渡しています。私のプログラムでは例外はありませんが、そのzipファイルを開こうとすると、File is Invalidというエラーが表示されます。
これはなぜ起こっているのか誰にでも教えてください。
パブリック静的ボイド圧縮(文字列srcPath、文字列DESTPATH){
srcFile = new File(srcPath);
destFile = new File(destPath);
try {
fileInputStream = new FileInputStream(srcFile);
fileOutputStream = new FileOutputStream(destFile);
zipEntry = new ZipEntry(srcPath);
zipOutputStream = new ZipOutputStream(fileOutputStream);
zipOutputStream.putNextEntry(zipEntry);
byte[] data = new byte[12];
while ((fileInputStream.read(data)) != -1) {
zipOutputStream.write(data);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try{
fileInputStream.close();
zipOutputStream.close();}catch (Exception e) {
e.printStackTrace();
}
}
}
どのAPIを使用しますか?コードスニペット? – Wivani
これはWindowsでですか?あなたはドライブ文字でジップエントリを作成していますか? 'C:\ path \ file.txt'? – dogbane
@dogbane:はい、それはウィンドウで、ドライブ文字でZIPエントリを作成しています。 – Logan