アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のようなコードでテキストファイルを圧縮しています。
そこで、圧縮先がコードが保存してある場所に行ってしまうのを取得しているフォルダ("c:\\new\\files")に保存させたいのですがどうすればいいでしょうか。
コードは別の場所に保存させたいです。
for文のzipはメソッドをしっかり作っているので大丈夫です。

public class TestZip{
public static void main(String[]args){
  File file =new File("c:\\new\\files");
File files[] =file.listFiles();

for (int i = 0; i < files.length; i++) {
zip(files[i].getName(),files[i].getName() +".zip" );//ここはあまり気にしないでください
}
}

質問者からの補足コメント

  • フォルダの指定の仕方をお教えください。

      補足日時:2016/07/27 12:22
  • これが、そうです。
    private static void zip(String inFile,String outFile){
    byte[] buf = new byte[1024];
    int len;
    try(
    ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File(outFile)));
    FileInputStream fi = new FileInputStream(inFile);
    ){
    zos.putNextEntry(new ZipEntry(inFile));
    len = fi.read(buf);
    zos.write(buf, 0, len);
    }catch(Exception e){
    }
    }
    }

      補足日時:2016/07/27 15:15
  • 1024バイト以上をしたいときは、new byte[1024]この部分を変えればいいのでしょうか?

      補足日時:2016/08/01 19:53

A 回答 (3件)

質問から時間が経ってしまいましたが、



zip(files[i].getName(),files[i].getName() +".zip" );

zip(files[i].getPath(),files[i].getPath() +".zip" );
にしてみたらどうでしょうか。

でも、zipメソッドは本当にこのままでいいのですか?
このままだと、各ファイルが1024バイト以内ならいいですが、そうでなければ先頭の1024バイトまでしか対象にならないと思います。
    • good
    • 0

zip というメソッドの仕様がわからないのでどうにも答えようがありません. そのメソッドを作った人に質問してみるのがよろしいでしょ

う.
    • good
    • 0

その zip とかいうメソッドの仕様がどうなってるか知らんけど, 生成される圧縮ファイルを指定するときにフォルダもいっしょに指定す

ればいいだけではないかなぁ.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!