Apagar arquivos de log(TXT)de um diretorio

1 resposta
rockstorm

Bom dia,
Tenho um diretorio de logs com arquivos .txt, preciso limpar o diretorio apagando os arquivos deixando somante o arquivo recente sendo:

Arquivo Recente: server.txt

Arquivos a serem apagados: server_01.txt, server_02.txt, server_03.txt…etc.

Eu tenho o metodo para apagar somente um arquivo, mas vários deixando somente o corrente, ainda nao consegui.

grato

1 Resposta

ViniGodoy
Dá uma olhada:
private void deleteOldResults() {
        println();
        println("Deleting old test results");
        println("-------------------------");

        //Pega o diretório onde estão os arquivos
        File parent = testScript.getParentFile();
        if (parent == null) {
            println("Unable to delete old results.");
            println("Could not find the parent path for: "
                    + testScript.getAbsolutePath());
            return;
        }
        
        print("Results directory: ");
        println(parent.getAbsolutePath());

        //Lista todos os arquivos do diretório
        File[] list = parent.listFiles(new ResultFileFilter());

        if (list == null) {
            println("Unable to delete old results.");
            println("The path is not a directory!");
            return;
        }

        //Apaga cada arquivo encontrado.
        for (File file : list)
            delete(file);

        println("Deleting old test results... OK!");
    }

    //Apaga o arquivo, exibe erro se não conseguir
    private void delete(File file)
    {
        print("   Deleting '" + file.getAbsolutePath() + "'...");
        System.out.println(file.delete() ? "OK!" : "FAILED! Read only?");
    }
//Filtra os arquivos de acordo com um critério
    private class ResultFileFilter implements FilenameFilter {
        final String[] fileTypes = {".t", ".erg", ".klr", ".ergflt", ".refflt",
                ".dif", ".ts1", ".ts2"};

        public boolean accept(File dir, String name) {
            String scriptName = testScript.getName();
            scriptName = scriptName.substring(0, scriptName.lastIndexOf("."));

            for (String fileType : fileTypes)
                if (name.startsWith(scriptName) && name.endsWith(fileType))
                    return true;
            return false;
        }
    }
Criado 16 de junho de 2008
Ultima resposta 16 de jun. de 2008
Respostas 1
Participantes 2