Puoi usare Apache Commons IO
per trovare facilmente la dimensione della cartella.
Se sei su Maven, aggiungi la seguente dipendenza nel tuo pom.xml
file.
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
Se non sei un fan di Maven, scarica il seguente jar e aggiungilo al percorso della 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
}
Per ottenere la dimensione del file tramite Commons IO,
File file = new File("ADD YOUR PATH TO FILE");
long fileSize = FileUtils.sizeOf(file);
System.out.println(fileSize); // bytes
È realizzabile anche tramite Google Guava
Per Maven, aggiungi quanto segue:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.1-jre</version>
</dependency>
Se non si utilizza Maven, aggiungere quanto segue al percorso di 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;
}
Per ottenere la dimensione del file,
File file = new File("PATH TO YOUR FILE");
long s = file.length();
System.out.println(s);