It's not a secret anymore!
The moose likes I/O and Streams and the fly likes Getting the free disk space Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » I/O and Streams
Bookmark "Getting the free disk space" Watch "Getting the free disk space" New topic

Getting the free disk space

Proteu Alcebidiano

Joined: Oct 28, 2004
Posts: 9
Does anyone known a pure java solution (or alternative methods) for this problem?? (Don�t tell me about JConfig)
Joe Ess

Joined: Oct 29, 2001
Posts: 9189

There's no functionality in the API to get the free disk space. The work-around I've seen involves exec()ing the appropriate platform-dependent command (dir on Windows, df on *nix) and parsing out the answer.

[How To Ask Questions On JavaRanch]
Proteu Alcebidiano

Joined: Oct 28, 2004
Posts: 9
dir command is problematic...
if I list a directory from a empty disk (a:\ for example) the output cannot return the free disk space

Its necessary to have some file inside the disk...

Do you know any alternative method for this problem?

Bertie Ramsbottom

Joined: Nov 17, 2004
Posts: 1
Dear Proteu,

I have an alternative. You may not like it, but it's better than nothing. I managed to solve the problem of disc space reporting by downloading the excellent and free Cygwin, and calling the "df" command with exec().

You don't need to have the entire Cygwin distribution installed on the machine executing the code when you use df: I only use df.exe and the two DLLs required by df.exe (cygiconv-2.dll and cygwin2.dll), in a special lib directory I created for the assorted binary utilities used by my code.

As I'm creating a custom Ant task in Java that will check the available disc space before a build runs, this method seemed to be the best way of doing it, when considering my available time, my limited programming skill, and my requirements. And of course it would be easy to convert my Ant script to run on a Linux or Unix, because df is a standard tool.

There's a snippet of my code at the end of my code... it's a bit rubbishy, but I'm not a developer, and all I wanted was to get it working. You will be able to at least get an idea of what I'm doing.

This is the output it produces when called from ant:

This is the Ant code I use to call the Java:

This is the source code from

Hope you find it at least somewhat useful. If not, you haven't lost anything.


[ November 17, 2004: Message edited by: Bertie Ramsbottom ]
[ November 17, 2004: Message edited by: Bertie Ramsbottom ]
I agree. Here's the link:
subject: Getting the free disk space
It's not a secret anymore!