Java實現Zip壓縮目錄中的所有文件

me87re 9年前發布 | 2K 次閱讀 Java

import java.io.;
import java.util.;
import java.util.zip.*;
public class FolderZip {
private static String sourcepath="C:\temp";
private static List<String>folderList=new ArrayList<String>(Arrays.asList(sourcepath));
private static List<String>folderList2=new ArrayList<String>(Arrays.asList("D:\tmp"+File.separator+sourcepath.substring(sourcepath.lastIndexOf(File.separator))));
private static FileInputStream fis = null;
private static FileOutputStream fos = null;
private static ZipOutputStream zipOut = null;
    public static void main(String[] args) {
        for (int j = 0; j < folderList.size(); j++) {
            new File(folderList2.get(j)).mkdirs();
            String[] file = new File(folderList.get(j)).list();
            File temp = null;
            for (int i = 0; i < file.length; i++) {
                if (folderList.get(j).endsWith(File.separator))
                    temp = new File(folderList.get(j), file[i]);
                else
                    temp = new File(folderList.get(j), file[i]);
                File zipFile = new File(folderList2.get(j), temp.getName()

                    + ".zip");
            if (temp.isFile() && !zipFile.exists())
                try {
                    fis = new FileInputStream(temp);
                    fos = new FileOutputStream(zipFile);
                    zipOut = new ZipOutputStream(fos);
                    ZipEntry entry = new ZipEntry(temp.getName());
                    zipOut.putNextEntry(entry);
                    int nNumber;
                    byte[] buffer = new byte[20480];
                    while ((nNumber = fis.read(buffer)) != -1)
                        zipOut.write(buffer, 0, nNumber);
                    zipOut.flush();
                } catch (IOException e) {
                    continue;
                } finally {
                    try {
                        zipOut.close();
                        fos.close();
                        fis.close();
                    } catch (IOException e) {
                    }
                }
            else if (temp.isDirectory()) {
                folderList
                        .add(folderList.get(j) + File.separator + file[i]);
                folderList2.add(folderList2.get(j) + File.separator
                        + file[i]);
            }
        }
    }
}

}</pre>

 本文由用戶 me87re 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!