如何用java給一個文件夾打成壓縮包(附代碼)
代碼示例:
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);
// 遞歸遍歷整個文件夾并添加到壓縮包
addFolderToZip("", new File(folderPath), zos);
} finally {
if (zos != null) {
zos.close();
}
if (fos != null) {
fos.close();
}
}
}
/**
* 將文件夾及其中的文件遞歸添加到壓縮流中
*
* @param parentPath 父級路徑
* @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 所指向的壓縮文件。您只需要將文件夾路徑和壓縮文件路徑替換為實際的值,然后在 Java 環(huán)境下運行該程序即可。
請注意,上面的代碼塊中的 PackageName 是您自己所定義的包名。如果沒有將此類文件放在任何包名下,則可以將其忽略。
總結(jié)
到此這篇關(guān)于如何用java給一個文件夾打成壓縮包的文章就介紹到這了,更多相關(guān)java文件夾打壓縮包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
簡單了解springboot中的配置文件相關(guān)知識
這篇文章主要介紹了簡單了解springboot中的配置文件相關(guān)知識,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11
springAI結(jié)合ollama簡單實現(xiàn)小結(jié)
本文主要介紹了springAI結(jié)合ollama簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-03-03

