亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java如何壓縮多個文件夾

小億
91
2024-09-13 15:24:58
欄目: 編程語言

在Java中,可以使用java.util.zip包中的類和方法來壓縮多個文件夾。以下是一個示例代碼,演示了如何將多個文件夾壓縮成一個ZIP文件:

import java.io.*;
import java.nio.file.*;
import java.util.zip.*;

public class ZipMultipleFolders {
    public static void main(String[] args) {
        // 要壓縮的文件夾路徑列表
        String[] folderPaths = {"path/to/folder1", "path/to/folder2"};
        
        // 輸出的ZIP文件路徑
        String outputZipFilePath = "path/to/output.zip";
        
        try {
            zipMultipleFolders(folderPaths, outputZipFilePath);
        } catch (IOException e) {
            System.err.println("Error while zipping folders: " + e.getMessage());
        }
    }

    private static void zipMultipleFolders(String[] folderPaths, String outputZipFilePath) throws IOException {
        try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(outputZipFilePath))) {
            for (String folderPath : folderPaths) {
                Path folder = Paths.get(folderPath);
                Files.walkFileTree(folder, new SimpleFileVisitor<Path>() {
                    @Override
                    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                        // 獲取相對于壓縮根目錄的文件路徑
                        String relativePath = folder.relativize(file).toString();
                        // 創建ZIP條目并寫入文件數據
                        zipOut.putNextEntry(new ZipEntry(relativePath));
                        Files.copy(file, zipOut);
                        zipOut.closeEntry();
                        return FileVisitResult.CONTINUE;
                    }
                });
            }
        }
    }
}

這個示例代碼首先定義了要壓縮的文件夾路徑列表和輸出的ZIP文件路徑。然后,它調用zipMultipleFolders方法來執行壓縮操作。

zipMultipleFolders方法接受兩個參數:一個是要壓縮的文件夾路徑列表,另一個是輸出的ZIP文件路徑。方法內部,我們創建一個ZipOutputStream實例,用于將文件寫入ZIP文件。

接下來,我們遍歷每個文件夾路徑,并使用Files.walkFileTree方法遍歷文件夾中的所有文件。對于每個文件,我們計算其相對于壓縮根目錄的路徑,并創建一個ZipEntry實例。然后,我們將文件數據寫入ZipOutputStream,并關閉當前ZIP條目。

最后,我們關閉ZipOutputStream,完成壓縮操作。

0
建昌县| 农安县| 舟曲县| 刚察县| 汾西县| 安新县| 革吉县| 新邵县| 阿鲁科尔沁旗| 临朐县| 晋江市| 辽源市| 班戈县| 铜山县| 六盘水市| 通城县| 平定县| 崇义县| 蓬安县| 斗六市| 靖边县| 镇原县| 灵石县| 四子王旗| 固镇县| 东乌珠穆沁旗| 蕉岭县| 碌曲县| 江陵县| 通州市| 阿巴嘎旗| 德钦县| 辰溪县| 同江市| 三河市| 水富县| 祁东县| 林甸县| 大邑县| 安新县| 扬中市|