如何用java給一個(gè)文件夾打成壓縮包(附代碼)
代碼示例:
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class Zip { public static void main(String[] args) { // 將要被壓縮的文件夾路徑 String folderPath = "D:\Logback\yiteng\ctnNO"; // 壓縮后生成的壓縮文件路徑及文件名 String zipFilePath = "D:\Logback\yiteng\ctnNO.zip"; try { zipFolder(folderPath, zipFilePath); System.out.println("Zip file created successfully."); } catch (IOException e) { System.out.println("Error creating zip file: " + e.getMessage()); } } /** * 打包壓縮文件夾 * * @param folderPath 文件夾路徑 * @param zipFilePath 壓縮后的文件路徑 * @throws IOException IO異常 */ public static void zipFolder(String folderPath, String zipFilePath) throws IOException { FileOutputStream fos = null; ZipOutputStream zos = null; try { fos = new FileOutputStream(zipFilePath); zos = new ZipOutputStream(fos); // 遞歸遍歷整個(gè)文件夾并添加到壓縮包 addFolderToZip("", new File(folderPath), zos); } finally { if (zos != null) { zos.close(); } if (fos != null) { fos.close(); } } } /** * 將文件夾及其中的文件遞歸添加到壓縮流中 * * @param parentPath 父級(jí)路徑 * @param folder 文件夾 * @param zos Zip輸出流 * @throws FileNotFoundException 文件未找到異常 * @throws IOException IO異常 */ private static void addFolderToZip(String parentPath, File folder, ZipOutputStream zos) throws FileNotFoundException, IOException { for (File file : folder.listFiles()) { if (file.isDirectory()) { // 遞歸添加子文件夾中的文件 addFolderToZip(parentPath + folder.getName() + "/", file, zos); } else { FileInputStream fis = null; try { fis = new FileInputStream(file); // 新建Zip條目并將輸入流加入到Zip包中 ZipEntry zipEntry = new ZipEntry(parentPath + folder.getName() + "/" + file.getName()); zos.putNextEntry(zipEntry); byte[] bytes = new byte[1024]; int length; while ((length = fis.read(bytes)) >= 0) { zos.write(bytes, 0, length); } } finally { if (fis != null) { fis.close(); } } } } } }
上面的程序可以將 folderPath
指向的文件夾中所有文件和子文件夾打包成 zipFilePath
所指向的壓縮文件。您只需要將文件夾路徑和壓縮文件路徑替換為實(shí)際的值,然后在 Java 環(huán)境下運(yùn)行該程序即可。
請(qǐng)注意,上面的代碼塊中的 PackageName
是您自己所定義的包名。如果沒(méi)有將此類文件放在任何包名下,則可以將其忽略。
總結(jié)
到此這篇關(guān)于如何用java給一個(gè)文件夾打成壓縮包的文章就介紹到這了,更多相關(guān)java文件夾打壓縮包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot自定義注解解決公共字段填充問(wèn)題解決
修改時(shí)間,修改人等字段時(shí),這些字段屬于公共字段,本文主要介紹了SpringBoot自定義注解解決公共字段填充問(wèn)題解決,使用它的好處就是可以統(tǒng)一對(duì)這些字段進(jìn)行處理,感興趣的可以了解一下2024-07-07java連接mongoDB并進(jìn)行增刪改查操作實(shí)例詳解
這篇文章主要介紹了java連接mongoDB并進(jìn)行增刪改查操作,結(jié)合實(shí)例形式詳細(xì)分析了java環(huán)境下MongoDB擴(kuò)展包的下載、安裝及操作MongoDB連接、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04簡(jiǎn)單了解springboot中的配置文件相關(guān)知識(shí)
這篇文章主要介紹了簡(jiǎn)單了解springboot中的配置文件相關(guān)知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11springAI結(jié)合ollama簡(jiǎn)單實(shí)現(xiàn)小結(jié)
本文主要介紹了springAI結(jié)合ollama簡(jiǎn)單實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03spring?boot項(xiàng)目中如何使用nacos作為配置中心
這篇文章主要介紹了spring?boot項(xiàng)目中如何使用nacos作為配置中心問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12詳解idea maven nexus 常見(jiàn)命令配置
這篇文章主要介紹了idea maven nexus 常見(jiàn)命令配置的相關(guān)知識(shí),通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04