shpfile包含多个文件,遍历文件夹打包成同名zip
/**
* @param shpFilePath shp文件地址 C:/test
* @param shpFileName shp文件名称 test
* @param zipName zip名称
* @throws Exception
*/
public static void zipShp(String shpFilePath, String shpFileName) throws Exception {
File folder = new File(shpFilePath);
File[] files = folder.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
File file = new File(dir, name);
return file.isFile() && file.getName().startsWith(shpFileName + '.');
}
});
// 创建一个输出流,指向压缩文件
FileOutputStream fos = new FileOutputStream(shpFilePath + "/" + shpFileName+ ".zip");
// 创建一个 ZipOutputStream 对象,将输出流传递进去
ZipOutputStream zos = new ZipOutputStream(fos);
for (File file : files) {
FileInputStream fis = new FileInputStream(file);
// 创建一个 ZipEntry 对象,表示压缩文件中的一个条目
ZipEntry zipEntry = new ZipEntry(file.getName());
// 将条目写入压缩文件
zos.putNextEntry(zipEntry);
// 将文件内容写入输出流
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
// 关闭当前条目
zos.closeEntry();
// 关闭输入流
fis.close();
}
// 关闭 ZipOutputStream
zos.close();
}