0

new_file_name は次のようなものです2013-03-15-08:59:10_65.zip

 fileZip = new ZipOutputStream(new FileOutputStream(new File(new_file_name)));
    byte[] buffer = new byte[1024];
    try{
        for(String fileName:fileList)
        {
            FileInputStream in = null;
            try{
                File file = new File(fileName);
                ZipEntry ze = new ZipEntry(fileName);
                fileZip.putNextEntry(ze);
                in = new FileInputStream(file);
                int len = 0;
                while((len = in.read(buffer)) > 0) {
                    fileZip.write(buffer, 0, len);
                }
                fileZip.closeEntry();
                in.close();
            } catch (Exception e) {
                log(0, "Exception writing "+fileName+" to "+new_file_name+": "+e.toString());
        }

この例外が発生しますException writing to 2013-03-15-09:28:20_65.zip: java.io.FileNotFoundException: (No such file or directory)

ディレクトリには完全な権限があります。フォルダーにも作成されるファイルが表示されます。getAbsolutePath() も指定しようとしましたが、同じ例外が発生しました。

4

2 に答える 2

1

NIO.2 ファイル API (ライブラリはオープン ソースです) を使用して、Zip ファイルとの間でディレクトリをコピーするユーティリティ メソッドをいくつか作成しました。

メイヴン:

<dependency>  
    <groupId>org.softsmithy.lib</groupId>  
    <artifactId>softsmithy-lib-core</artifactId>  
    <version>0.3</version>  
</dependency>  

チュートリアル:

http://softsmithy.sourceforge.net/lib/current/docs/tutorial/nio-file/index.html#AddZipResourceSample

API: CopyFileVisitor.copy

多分あなたはそれが便利だと思うでしょう。

于 2013-03-15T13:45:53.580 に答える
0

ファイル名に「:」は使用できないと思いますが、「2013-03-15-08_59_10_65.zip」を使用すれば問題ありません。

わかりました... fileList 内のファイルが存在しない場合、どうにかして同じエラーを見つけることができました!

于 2013-03-15T13:44:44.133 に答える