2017-03-18 4 views
0

私はjavaを初めて使用しており、私はそれを圧縮した後にフォルダを保存する場所を指定するのに問題があります。常に私が作成しているプロジェクトワークスペースに移動します。私はそれがパスに保存したい郵便番号の後にファイルを追加する場所を指定します

"C:\\Users\\win8.1\\Desktop\\AES" 

ここではコードです:

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipOutputStream; 

public class ZipUtils 
{ 

private List<String> fileList; 
private static final String OUTPUT_ZIP_FILE = "Folder.zip"; 
private static final String SOURCE_FOLDER = "C:\\Users\\win8.1\\Desktop\\AES\\SAMPLEPATH"; // SourceFolder path 

public ZipUtils() 
{ 
    fileList = new ArrayList<String>(); 
} 

public static void main(String[] args) 
{ 
    ZipUtils appZip = new ZipUtils(); 
    appZip.generateFileList(new File(SOURCE_FOLDER)); 
    appZip.zipIt(OUTPUT_ZIP_FILE); 
} 

public void zipIt(String zipFile) 
{ 
    byte[] buffer = new byte[1024]; 
    String source = ""; 
    FileOutputStream fos = null; 
    ZipOutputStream zos = null; 
    try 
    { 
     try 
     { 
     source = SOURCE_FOLDER.substring(SOURCE_FOLDER.lastIndexOf("\\") + 1, SOURCE_FOLDER.length()); 
     } 
    catch (Exception e) 
    { 
     source = SOURCE_FOLDER; 
    } 
    fos = new FileOutputStream(zipFile); 
    zos = new ZipOutputStream(fos); 

    System.out.println("Output to Zip : " + zipFile); 
    FileInputStream in = null; 

    for (String file : this.fileList) 
    { 
     System.out.println("File Added : " + file); 
     ZipEntry ze = new ZipEntry(source + File.separator + file); 
     zos.putNextEntry(ze); 
     try 
     { 
      in = new FileInputStream(SOURCE_FOLDER + File.separator + file); 
      int len; 
      while ((len = in.read(buffer)) > 0) 
      { 
       zos.write(buffer, 0, len); 
      } 
     } 
     finally 
     { 
      in.close(); 
     } 
    } 

    zos.closeEntry(); 
    System.out.println("Folder successfully compressed"); 

    } 
    catch (IOException ex) 
    { 
    ex.printStackTrace(); 
    } 
    finally 
    { 
    try 
    { 
     zos.close(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    } 
} 

public void generateFileList(File node) 
{ 

    // add file only 
    if (node.isFile()) 
    { 
    fileList.add(generateZipEntry(node.toString())); 

    } 

    if (node.isDirectory()) 
    { 
    String[] subNote = node.list(); 
    for (String filename : subNote) 
    { 
     generateFileList(new File(node, filename)); 
    } 
    } 
} 

private String generateZipEntry(String file) 
{ 
    return file.substring(SOURCE_FOLDER.length() + 1, file.length()); 
} 
}  

私はコードhereを得ました。前もって感謝します!

答えて

1

問題ありません。ちょうど書きます

private static final String OUTPUT_ZIP_FILE = "C:\\Users\\win8.1\\Desktop\\AES\\Folder.zip"; 
private static final String SOURCE_FOLDER = "C:\\Users\\win8.1\\Desktop\\AES\\SAMPLEPATH"; 
関連する問題