Puede utilizar Apache Commons IO
para encontrar el tamaño de la carpeta fácilmente.
Si está en maven, agregue la siguiente dependencia en su pom.xml
archivo.
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
Si no eres fanático de Maven, descarga el siguiente jar y agrégalo a la ruta de clases.
https://repo1.maven.org/maven2/commons-io/commons-io/2.6/commons-io-2.6.jar
public long getFolderSize() {
File folder = new File("src/test/resources");
long size = FileUtils.sizeOfDirectory(folder);
return size; // in bytes
}
Para obtener el tamaño del archivo a través de Commons IO,
File file = new File("ADD YOUR PATH TO FILE");
long fileSize = FileUtils.sizeOf(file);
System.out.println(fileSize); // bytes
También se puede lograr a través de Google Guava
Para Maven, agregue lo siguiente:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.1-jre</version>
</dependency>
Si no usa Maven, agregue lo siguiente a la ruta de clases
https://repo1.maven.org/maven2/com/google/guava/guava/28.1-jre/guava-28.1-jre.jar
public long getFolderSizeViaGuava() {
File folder = new File("src/test/resources");
Iterable<File> files = Files.fileTreeTraverser()
.breadthFirstTraversal(folder);
long size = StreamSupport.stream(files.spliterator(), false)
.filter(f -> f.isFile())
.mapToLong(File::length).sum();
return size;
}
Para obtener el tamaño del archivo,
File file = new File("PATH TO YOUR FILE");
long s = file.length();
System.out.println(s);