Você pode usar Apache Commons IO
para encontrar o tamanho da pasta facilmente.
Se você estiver no maven, adicione a seguinte dependência em seu pom.xml
arquivo.
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
Se você não for fã do Maven, baixe o jar a seguir e adicione-o ao caminho da classe.
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 obter o tamanho do arquivo via Commons IO,
File file = new File("ADD YOUR PATH TO FILE");
long fileSize = FileUtils.sizeOf(file);
System.out.println(fileSize); // bytes
Também é possível através de Google Guava
Para Maven, adicione o seguinte:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.1-jre</version>
</dependency>
Se não estiver usando o Maven, adicione o seguinte ao caminho da classe
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 obter o tamanho do arquivo,
File file = new File("PATH TO YOUR FILE");
long s = file.length();
System.out.println(s);