Ola pessoal, minha dúvida esta em relação as subpastas de um arquivo .zip, no momento que vou extrair os arquivos de dentro das subpastas antes eu preciso ter criado os subdiretórios, mas eu gostaria de saber se tem como eu descompactar o que esta dentro de uma pasta zipada numa pasta raiz ex: “c:\temp” ou seja, eu noto que a zipEntry fica: “nomedapasta\arquivo.txt” se eu não criar uma pasta no meu c:\temp\nomedapasta ele não consegue extrair, apenas consigo dando mkdir, é possivel fazer isso usando o pacote util.zip ou alguma biblioteca se alguem conhece ? de não precisa criar esses diretorios ? pois com a quantidade de .zip que meu sistema recebe ta ficando inumeras pasta la dentro e ainda mais, preciso depois fazer um processo nesses arquivos que foram descompatados o que esta ficando muito ruim, chegueu a criar a pasta apenas para descompatar depois de ter pego os aruivos mudei os arquivos de lugar, após apaguei os arquivos e a pasta, mas como gero um log, um andamento de tudo que acontece no sistema, falo de threads rodando e isso me gera problemas pois as vezes quando o log le os andamentos desses processos o diretório ja foi deletado não existindo mais e me gerando um log de erro, se alguem puder ajudar fico grato, abraços.
Alterando ZipEntry [RESOLVED]
1 Resposta
apenas para fins de pesquisa é o seguinte:
// Obtem a entrada do zip.
ZipEntry zipEntry = (ZipEntry) e.nextElement();
// Se não form um diretório, processa.
if (!zipEntry.isDirectory()) {
//aqui altero a zipEntry
String zipEntryStr = zipEntry.getName().substring(zipEntry.getName().lastIndexOf("/"));
zipEntryStr = removeCaracteresEspeciais(zipEntryStr);
// Nome completo.
fullFileName = toPathName + zipEntryStr;
} else if (zipEntry.isDirectory()) {
fullFileName = toPathName + zipEntry.getName();
continue;
}
public static String removeCaracteresEspeciais(String nomePasta) {
String padrao = "[/]";
Pattern regPat = Pattern.compile(padrao);
Matcher matcher = regPat.matcher(nomePasta);
return matcher.replaceAll("");
}
Criado 30 de setembro de 2010
Ultima resposta 30 de set. de 2010
Respostas 1
Participantes 1
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Inteligencia Artificial e ChatGPT: Da revolucao dos... Por Fabricio Carraro — Casa do Codigo