无法在zip文件中解压.tar文件?

0kjbasz6  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(623)

我需要解包所有包含zip文件的文件。但是zip文件中还包含一个.tar文件。考虑以下路径:原始zip路径:e:\test\26-03-2016\order\7930199\u 1.zip提取路径:e:\test\26-03-2016\order\7930199\u 1\itemfile\1458887416277\u 12\ftp\content providers\ewh-e\data\incomingabp

  1. In the Extracted path ,The folder contains a .tar file as OBX00000000005442A.tar and it has several folders with in it.

我已提取到incomingabp,但无法提取.tar文件。请帮助我提取这个.tar文件。下面我提供了我的代码片段。

代码从这里开始

  1. static public void extractFolder(String zipFile) throws
  2. ZipException,
  3. IOException
  4. {
  5. System.out.println(zipFile);
  6. int BUFFER = 2048;
  7. File file = new File(zipFile);
  8. ZipFile zip = new ZipFile(file);
  9. String newPath = zipFile.substring(0, zipFile.length() - 4);
  10. new File(newPath).mkdir();
  11. Enumeration zipFileEntries = zip.entries();
  12. // Process each entry
  13. while (zipFileEntries.hasMoreElements())
  14. {
  15. // grab a zip file entry
  16. ZipEntry entry = (ZipEntry) zipFileEntries.nextElement();
  17. String currentEntry = entry.getName();
  18. File destFile = new File(newPath, currentEntry);
  19. //destFile = new File(newPath, destFile.getName());
  20. File destinationParent = destFile.getParentFile();
  21. // create the parent directory structure if needed
  22. destinationParent.mkdirs();
  23. if (!entry.isDirectory())
  24. {
  25. BufferedInputStream is = new BufferedInputStream(zip
  26. .getInputStream(entry));
  27. int currentByte;
  28. // establish buffer for writing file
  29. byte data[] = new byte[BUFFER];
  30. // write the current file to disk
  31. FileOutputStream fos = new FileOutputStream(destFile);
  32. BufferedOutputStream dest = new BufferedOutputStream(fos,
  33. BUFFER);
  34. // read and write until last byte is encountered
  35. while ((currentByte = is.read(data, 0, BUFFER)) != -1) {
  36. dest.write(data, 0, currentByte);
  37. }
  38. dest.flush();
  39. dest.close();
  40. is.close();
  41. }
  42. if (currentEntry.endsWith(".zip")||currentEntry.endsWith(".tar"))
  43. {
  44. // found a zip file, try to open
  45. extractFolder(destFile.getAbsolutePath());
  46. }
  47. }
  48. }
  49. }

有人能帮我提取这个吗?提前感谢strack trace:e:\test\26-03-2016\order\7930199\u 1.zip e:\test\26-03-2016\order\7930199\u 1\itemfile\1458887416277\u 12.zip e:\test\26-03-2016\order\7930199\u 1\itemfile\1458887416277\u 12\ftp\content-providers\ewh-e\data\incomingabp\obx0000005442a.tar

  1. Exception in thread "main" java.util.zip.ZipException: error in opening
  2. zip file
  3. at java.util.zip.ZipFile.open(Native Method)
  4. at java.util.zip.ZipFile.<init>(Unknown Source)
  5. at java.util.zip.ZipFile.<init>(Unknown Source)
  6. at java.util.zip.ZipFile.<init>(Unknown Source)
  7. at Extraction_ZIP.Extraction3.extractFolder(Extraction3.java:24)
  8. at Extraction_ZIP.Extraction3.extractFolder(Extraction3.java:68)
  9. at Extraction_ZIP.Extraction3.extractFolder(Extraction3.java:68)
  10. at Execution_point.Cl_Execute.main(Cl_Execute.java:29)
cx6n0qe3

cx6n0qe31#

这个问题在这里已经回答过了。如果问题已经存在,最好还是搜索。
无论如何,这里有一个非常相似的问题。似乎使用ApacheCommonsCompress是一个不错的选择。
如何在java中提取tar文件?

相关问题