"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como você calcula com eficiência o tamanho de um arquivo ou pasta em Java?

Como você calcula com eficiência o tamanho de um arquivo ou pasta em Java?

Publicado em 2024-11-08
Navegar:468

How do you efficiently calculate the size of a file or folder in Java?

Obtendo o tamanho de um arquivo ou pasta em Java

Recuperar o tamanho de um arquivo ou pasta é uma tarefa comum ao trabalhar com arquivos em Java. Veja como você pode fazer isso de forma eficaz:

Obtendo o tamanho do arquivo

Para obter o tamanho de um arquivo, você pode usar o método length() em um java.io .Objeto de arquivo. Isso retorna o comprimento do arquivo em bytes ou 0 se o arquivo não existir.

java.io.File file = new java.io.File("myfile.txt");
file.length();

Obtendo o tamanho da pasta

Obter o tamanho de uma pasta não é tão simples quanto obter o tamanho de um arquivo. Não existe uma maneira integrada de fazer isso em Java. Em vez disso, você precisa percorrer a árvore de diretórios recursivamente, acumulando o tamanho da pasta para cada subdiretório e arquivo:

public static long folderSize(File directory) {
    long length = 0;
    for (File file : directory.listFiles()) {
        if (file.isFile())
            length  = file.length();
        else
            length  = folderSize(file);
    }
    return length;
}

Cuidado: O método acima pode encontrar problemas se directory.listFiles() retornar nulo ou se houver links simbólicos presentes.

Alternativa:

Para um cálculo mais robusto do tamanho da pasta, considere usar uma biblioteca de terceiros como JWalk ou Apache Commons IO. Essas bibliotecas fornecem soluções mais confiáveis ​​e abrangentes para calcular tamanhos de pastas em Java.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3