"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo se calcula eficientemente el tamaño de un archivo o carpeta en Java?

¿Cómo se calcula eficientemente el tamaño de un archivo o carpeta en Java?

Publicado el 2024-11-08
Navegar:689

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

Obtener el tamaño de un archivo o carpeta en Java

Recuperar el tamaño de un archivo o carpeta es una tarea común cuando se trabaja con archivos en Java. Así es como puedes hacerlo de manera efectiva:

Obtener el tamaño del archivo

Para obtener el tamaño de un archivo, puedes usar el método length() en java.io .Objeto de archivo. Esto devuelve la longitud del archivo en bytes o 0 si el archivo no existe.

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

Obtener el tamaño de la carpeta

Obtener el tamaño de una carpeta no es tan sencillo como obtener el tamaño de un archivo. No existe una forma integrada de hacer esto en Java. En su lugar, debe recorrer el árbol de directorios de forma recursiva, acumulando el tamaño de la carpeta para cada subdirectorio y archivo:

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;
}

Precaución: El método anterior puede tener problemas si directorio.listFiles() devuelve nulo o si hay enlaces simbólicos presentes.

Alternativa:

Para un cálculo más sólido del tamaño de la carpeta, considere usar una biblioteca de terceros como JWalk o Apache Commons IO. Estas bibliotecas brindan soluciones más confiables y completas para calcular el tamaño de las carpetas en Java.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3