Apagar ficheiro

4 respostas
L

Boas pessoal !

Tenho uma aplicação e gostaria de criar uma acção que apague um determinado ficheiro numa determinada pasta.

Alguem me pode ajudar a criar este mecanismo ?

Suponhamos que eu queira que sempre que um botao for pressionado ele vá a directoria c:\Documentos\e apague todos os ficheiros que la estiverem

Agradeço desde ja a ajuda !

4 Respostas

B

Cara você já deu uma olhada na classe java.io.File ? Lé tem um monte de métodos pra você manipular arquivos e diretórios, dentre os métodos existentes tem um chamado delete.
Daí você pode fazer:

File diretorio = new File("C:\\Documentos\\e");
diretorio.delete();
M

Bom dia,

Primeiro, tens que garantir que o ficheiro tenha permissão de escrita para o usuário em que o java roda. Para fazer:
a) Apagar o ficheiro escolhido:
Você vai acessá-lo como um arquivo qualquer (com um objeto da classe File) e depois invocará o método delete.

b) Apagar todos os ficheiros e/ou arquivos dentro de um determinado ficheiro:
b.1) Apagar todos:
Poderás acessar o ficheiro, apagá-lo e recriá-lo, que é a maneira mais simples mas não mais elegante de se fazer.
Outra maneira que poderias fazer é acessar o determinado ficheiro pai, invocar o método listFiles, percorrer a array e ir deletando um a um.
b.2) Apagar somente ficheiros, preservando os arquivos:
Irás seguir os passos da segunda maneira que mencionei no item b.1), só que irás fazer um laço condicional, verificando se é um arquivo ou não( método isFile ou isDirectory). O resto é só implementar sua lógica.

Até!

Obs.: Todos esses dados estão em: http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html

T

file = arquivo (ficheiro)
directory (folder) = diretório ou pasta

import java.util.*;
import java.io.*;

class ApagarDiretorio {

    
    /**
    * @param dir o diretório a ser apagado
    * @param apagados A lista de arquivos e diretórios apagados
    * @param naoApagados A lista de arquivos não-apagados.
    */
    public boolean apagarDiretorio (File dir, List<File> apagados, List<File> naoApagados) {
        System.out.println (dir);
        File[] arqs = dir.listFiles();
        boolean tudo = true;
        if (dir.isDirectory()) {
            for (File f : arqs) {
                if (f.isFile()) {
                    f.delete();
                    if (!f.exists()) {
                        apagados.add (f);
                    } else {
                        naoApagados.add (f);
                        tudo = false;
                    }
                } else if (f.isDirectory()) {
                    tudo = tudo & apagarDiretorio (f, apagados, naoApagados);
                }
            }
            dir.delete();
            if (!dir.exists()) {
                apagados.add (dir);
            }
        }
        return tudo;
    }

    public static void main(String[] args) {
        // Criando um diretório e vários subdiretórios e arquivos
        File f1 = new File ("C:/TEMPXXX/YYY/ZZZ/WWW");
        f1.mkdirs ();
        File f2 = new File ("C:/TEMPXXX/YYY/AAA/WWW");
        f2.mkdirs ();
        File f3 = new File ("C:/TEMPXXX/BBB/ZZZ");
        f3.mkdirs ();
        try {
            File.createTempFile ("aaa", ".bbb", f1);
            File.createTempFile ("qwe", ".rty", f2);
            File.createTempFile ("asd", ".fgh", f3);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
        // Agora vamos testar
        List<File> apagados = new ArrayList<File>();
        List<File> naoApagados = new ArrayList<File>();
        ApagarDiretorio ad = new ApagarDiretorio();
        boolean tudo = ad.apagarDiretorio (new File ("C:/TEMPXXX"), apagados, naoApagados);
        System.out.println ("Apagou tudo? " + tudo);
        System.out.println ("Lista de arquivos apagados");
        System.out.println (apagados);
        System.out.println ("Lista de arquivos não apagados");
        System.out.println (naoApagados);
    }
}
M

thingol:
file = arquivo (ficheiro)
directory (folder) = diretório ou pasta

Meu português de Portugal está deveras enferrujado.

Até!

Criado 9 de abril de 2007
Ultima resposta 9 de abr. de 2007
Respostas 4
Participantes 4