Я использую библиотеку Apache Common Compress для распаковки файла tar.gz.У меня есть сценарий, в котором файловая иерархия в tar-файлах такова.
Теперь эти файлы будут извлечены по четко определенному пути со следующим кодом:
try (TarArchiveInputStream fin = new TarArchiveInputStream(new GzipCompressorInputStream(new FileInputStream(inFolderPath)))){
TarArchiveEntry entry;
while ((entry = fin.getNextTarEntry()) != null) {
if (entry.isDirectory()) {
continue;
}
File curfile = new File(outFolderPath, entry.getName());
File parent = curfile.getParentFile();
if (!parent.exists()) {
parent.mkdirs();
}
IOUtils.copy(fin, new FileOutputStream(curfile));
}
} catch (IOException e) {
Debug.logError(e, module);
}
Имя папки A изменяется со временем какзначение даты добавляется к его имени.Мне нужно получить доступ к файлам B и C (с всегда одинаковыми именами) из другого кода.
Есть ли способ пропустить A [корневой каталог] и извлечь B & C непосредственно в нужное место.
В настоящее время я написал код для перемещения файлов и удаления корневого каталога:
File dir = new File(unzipDir);
File rootDir = dir.listFiles()[0];
File[] directoryListing = rootDir.listFiles();
if (directoryListing != null) {
for (File child : directoryListing) {
child.renameTo(new File(unzipDir + "/" + child.getName()));
}
}
rootDir.delete();
Я должен написать дополнительный код для выполнения.Есть ли способ сделать это с помощью библиотеки Apache Common Compress?