Como descobrir quanto espaço em disco resta usando o Java?

Como descobrir quanto espaço em disco resta usando o Java?

Basta olhar para a documentação da class File. Este é um dos novos resources do 1.6.

Esses novos methods também incluem:

  • public long getTotalSpace()
  • public long getFreeSpace()
  • public long getUsableSpace()

Se você ainda estiver usando 1.5, então você pode usar a biblioteca Apache Commons IO e sua class FileSystem

O Java 1.7 tem uma API um pouco diferente, o espaço livre pode ser consultado através da class FileStore através dos methods getTotalSpace () , getUnallocatedSpace () e getUsableSpace () .

 NumberFormat nf = NumberFormat.getNumberInstance(); for (Path root : FileSystems.getDefault().getRootDirectories()) { System.out.print(root + ": "); try { FileStore store = Files.getFileStore(root); System.out.println("available=" + nf.format(store.getUsableSpace()) + ", total=" + nf.format(store.getTotalSpace())); } catch (IOException e) { System.out.println("error querying space: " + e.toString()); } } 

A vantagem dessa API é que você obtém exceções significativas quando a consulta de espaço em disco falha.

Use CommonsIO e FilesystemUtils:

https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileSystemUtils.html#freeSpaceKb ()

por exemplo

 FileSystemUtils.freeSpaceKb("/"); 

ou embutido no JDK:

http://java.sun.com/javase/6/docs/api/java/io/File.html#getFreeSpace ()

 new File("/").getFreeSpace(); 

Ligação

Se você é um programador Java, você pode já ter sido perguntado sobre esta simples pergunta estúpida: “como encontrar o espaço livre no meu sistema?”. O problema é que a resposta é dependente do sistema. Na verdade, é a implementação que depende do sistema. E até muito recentemente, não havia uma solução única para responder a essa pergunta, embora a necessidade tenha sido registrada no database de defeitos da Sun desde junho de 1997. Agora é possível obter o espaço livre em disco no Java 6 com um método na class File, que retorna o número de bytes não alocados na partição nomeada pelo nome do caminho abstrato. Mas você pode estar interessado no espaço em disco utilizável (aquele que é gravável). É até mesmo possível obter o espaço total em disco de uma partição com o método getTotalSpace ().

Ao verificar o espaço em disco usando java, você tem o seguinte método em java.io.

  • getTotalSpace ()
  • getFreeSpace ()

que definitivamente irá ajudá-lo a obter as informações necessárias. Por exemplo, você pode consultar http://javatutorialhq.com/java/example-source-code/io/file/check-disk-space-java/, que fornece um exemplo concreto ao usar esses methods.

 public class MemoryStatus{ public static void main(String args[])throws Exception{ Runtime r=Runtime.getRuntime(); System.out.println("Total Memory: "+r.totalMemory()); System.out.println("Free Memory: "+r.freeMemory()); } } 

Experimente este código para obter espaço em disco