压缩包方法 标注路径详细说明

This commit is contained in:
gaoxiongzaq 2023-12-19 15:55:21 +08:00
parent 79b9d703dc
commit 6b802b6545
1 changed files with 7 additions and 6 deletions

View File

@ -34,9 +34,10 @@ public class CompressFileReader {
public String unRar(String filePath, String filePassword, String fileName, String fileKey) throws Exception { public String unRar(String filePath, String filePassword, String fileName, String fileKey) throws Exception {
List<String> imgUrls = new ArrayList<>(); List<String> imgUrls = new ArrayList<>();
String baseUrl = BaseUrlFilter.getBaseUrl(); String baseUrl = BaseUrlFilter.getBaseUrl();
String packagePath = "_"; //防止文件名重复 压缩包统一生成文件添加_符号
String folderName = filePath.replace(fileDir, ""); //修复压缩包 多重目录获取路径错误 String folderName = filePath.replace(fileDir, ""); //修复压缩包 多重目录获取路径错误
if (!ObjectUtils.isEmpty(fileKey)) { //压缩包文件 直接赋予路径 不予下载 if (!ObjectUtils.isEmpty(fileKey)) { //压缩包文件 直接赋予路径 不予下载
folderName = "_decompression"+folderName; folderName = "_decompression"+folderName; //重新修改多重压缩包 生成文件路径
} }
RandomAccessFile randomAccessFile = null; RandomAccessFile randomAccessFile = null;
IInArchive inArchive = null; IInArchive inArchive = null;
@ -57,11 +58,11 @@ public class CompressFileReader {
} }
str[0] = str[0].replace("\\", File.separator); //Linux 下路径错误 str[0] = str[0].replace("\\", File.separator); //Linux 下路径错误
String str1 = str[0].substring(0, str[0].lastIndexOf(File.separator)+ 1); String str1 = str[0].substring(0, str[0].lastIndexOf(File.separator)+ 1);
File file = new File(fileDir, finalFolderName + "_" + File.separator + str1); File file = new File(fileDir, finalFolderName + packagePath + File.separator + str1);
if (!file.exists()) { if (!file.exists()) {
file.mkdirs(); file.mkdirs();
} }
OutputStream out = new FileOutputStream( fileDir+ finalFolderName + "_" + File.separator + str[0], true); OutputStream out = new FileOutputStream( fileDir+ finalFolderName + packagePath + File.separator + str[0], true);
IOUtils.write(data, out); IOUtils.write(data, out);
out.close(); out.close();
} catch (Exception e) { } catch (Exception e) {
@ -73,15 +74,15 @@ public class CompressFileReader {
if (result == ExtractOperationResult.OK) { if (result == ExtractOperationResult.OK) {
FileType type = FileType.typeFromUrl(str[0]); FileType type = FileType.typeFromUrl(str[0]);
if (type.equals(FileType.PICTURE)) { if (type.equals(FileType.PICTURE)) {
imgUrls.add(baseUrl +folderName + "_/" + str[0].replace("\\", "/")); imgUrls.add(baseUrl +folderName + packagePath +"/" + str[0].replace("\\", "/"));
} }
fileHandlerService.putImgCache(fileName+ "_", imgUrls); fileHandlerService.putImgCache(fileName+ packagePath, imgUrls);
} else { } else {
return null; return null;
} }
} }
} }
return folderName + "_"; return folderName + packagePath;
} catch (Exception e) { } catch (Exception e) {
throw new Exception(e); throw new Exception(e);
} finally { } finally {