Deletar um arquivo zip

Alguém saberia me dizer como é que eu faço para deletar um arquivo zip.
Procurei em vários locais mas não os exemplos são complicados de ententeder …

Olá,

Use a classe File. Da uma pesquisada no forum, tem muita coisa.

Eu sei o File tem o método delete, mas ele não serve pois, eu preciso primeiro excluir o arquivo dentro do zip

Então acho que está faltando dados sobre a sua dúvida. Qual o procedimento que quer efetuar: deletar um arquivo zip (como está escrito no primeiro post) ou deletar um arquivo dentro de um arquivo zip.

[]´s

Ah, você queria criar um arquivo .zip a partir de outro .zip, só que removendo os arquivos indesejados? É um bocadinho trabalhoso; eu recomendaria compilar o programa zip.exe (que pode ser obtido em www.info-zip.org) e chamar, via Process.exec, esse programa com a opção -d.

zip -d seuarquivo.zip *.java

para remover todos os arquivos .java do arquivo ‘seuarquiv.zip’.

Perai, não entendi.

Você quer deletar um arquivo dentro do zip, pra ai deletar o Zip? Mas pra que isso? :S

Voce pode usar um comando de sistema pra descompactar ele.

Os dois… mas eu já consegui

Ué, poste a solução auqi. =)

O legal é quando estão com duvidas…vem CORRENDO ao fórum, para conseguir ajuda.
Quando resolvem, não dão nem sinal de vida para informar a solução.

Lembrem-se, aqui é um fórum e outras pessoas podem estar lidando com o mesmo problema.
Quando é a vez de ?ajudar? outras pessoas futuramente, acabam sumindo! :slight_smile:

Sem mais.

achei que estava com a solução, ela estava errada por isso não postei

Eu ainda não entendi oq vc deseja fazer…
Explique-se!

Preciso excluir um arquivo .zip!

Se o arquivo .zip estiver fechado, então você pode removê-lo com File.delete como qualquer outro arquivo.
Se você precisa deletar apenas um arquivo dentro do arquivo .zip então é mais fácil usar um comando, como o que passei.

try {
	File f = new File("arquivo.zip");
	f.delete();
} catch (Exception e) {
	e.printStackTrace();
}

Nem precisa fazer um “try/catch” no caso de File.delete. O recomendado, na verdade, é verificar depois se o arquivo ainda existe (o retorno de File.delete não é muito confiável.)

Sergio tente usar o exemplo mas, não fucionu o arquivo não foi excluido

import java.io.File;

public class Delete {
  public static void main(String[] args) {
    String fileName = "arquivo.zip";
    // A File object to represent the filename
    File f = new File(fileName);

    // Make sure the file or directory exists and isn't write protected
    if (!f.exists())
      throw new IllegalArgumentException(
          "Delete: no such file or directory: " + fileName);

    if (!f.canWrite())
      throw new IllegalArgumentException("Delete: write protected: "
          + fileName);

    // If it is a directory, make sure it is empty
    if (f.isDirectory()) {
      String[] files = f.list();
      if (files.length > 0)
        throw new IllegalArgumentException(
            "Delete: directory not empty: " + fileName);
    }

    // Attempt to delete it
    boolean success = f.delete();

    if (!success)
      throw new IllegalArgumentException("Delete: deletion failed");
  }

}

5s de busca no google.
Poste oq tá aparecendo no console.

Como eu disse, pode ser que:

  • O arquivo ainda esteja aberto por alguma outra aplicação;
  • Você esteja tentando deletar o arquivo errado. Veja se o tal arquivo existe - se olhar a documentação vai ver que existe um método chamado “exists” e outro chamado “getCanonicalPath” para ver se você está realmente tentando deletar o arquivo certo.

[quote=thingol]Como eu disse, pode ser que:

  • O arquivo ainda esteja aberto por alguma outra aplicação;
  • Você esteja tentando deletar o arquivo errado. Veja se o tal arquivo existe - se olhar a documentação vai ver que existe um método chamado “exists” e outro chamado “getCanonicalPath” para ver se você está realmente tentando deletar o arquivo certo.
    [/quote]

Ola Thingol,

Mas o método delete() não lança nenhuma exceção se não achar o arquivo, ou algo do tipo? Por isso ele não é confiavel?

grato.