org.apache.commons.io
Class FileSystemUtils

java.lang.Object
  extended by org.apache.commons.io.FileSystemUtils

public class FileSystemUtils
extends Object

General File System utilities.

This class provides static utility methods for general file system functions not provided via the JDK File class.

The current functions provided are:

Since:
Commons IO 1.1
Version:
$Id: FileSystemUtils.java 453889 2006-10-07 11:56:25Z scolebourne $
Author:
Frank W. Zammetti, Stephen Colebourne, Thomas Ledoux, James Urie, Magnus Grimsell, Thomas Ledoux

Constructor Summary
FileSystemUtils()
          Instances should NOT be constructed in standard programming.
 
Method Summary
static long freeSpace(String path)
          Deprecated. Use freeSpaceKb(String) Deprecated from 1.3, may be removed in 2.0
static long freeSpaceKb(String path)
          Returns the free space on a drive or volume in kilobytes by invoking the command line.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FileSystemUtils

public FileSystemUtils()
Instances should NOT be constructed in standard programming.

Method Detail

freeSpace

public static long freeSpace(String path)
                      throws IOException
Deprecated. Use freeSpaceKb(String) Deprecated from 1.3, may be removed in 2.0

Returns the free space on a drive or volume by invoking the command line. This method does not normalize the result, and typically returns bytes on Windows, 512 byte units on OS X and kilobytes on Unix. As this is not very useful, this method is deprecated in favour of freeSpaceKb(String) which returns a result in kilobytes.

Note that some OS's are NOT currently supported, including OS/390, OpenVMS and and SunOS 5. (SunOS is supported by freeSpaceKb.)

 FileSystemUtils.freeSpace("C:");       // Windows
 FileSystemUtils.freeSpace("/volume");  // *nix
 
The free space is calculated via the command line. It uses 'dir /-c' on Windows and 'df' on *nix.

Parameters:
path - the path to get free space for, not null, not empty on Unix
Returns:
the amount of free drive space on the drive or volume
Throws:
IllegalArgumentException - if the path is invalid
IllegalStateException - if an error occurred in initialisation
IOException - if an error occurs when finding the free space
Since:
Commons IO 1.1, enhanced OS support in 1.2 and 1.3

freeSpaceKb

public static long freeSpaceKb(String path)
                        throws IOException
Returns the free space on a drive or volume in kilobytes by invoking the command line.
 FileSystemUtils.freeSpaceKb("C:");       // Windows
 FileSystemUtils.freeSpaceKb("/volume");  // *nix
 
The free space is calculated via the command line. It uses 'dir /-c' on Windows, 'df -kP' on AIX/HP-UX and 'df -k' on other Unix.

In order to work, you must be running Windows, or have a implementation of Unix df that supports GNU format when passed -k (or -kP). If you are going to rely on this code, please check that it works on your OS by running some simple tests to compare the command line with the output from this class. If your operating system isn't supported, please raise a JIRA call detailing the exact result from df -k and as much other detail as possible, thanks.

Parameters:
path - the path to get free space for, not null, not empty on Unix
Returns:
the amount of free drive space on the drive or volume in kilobytes
Throws:
IllegalArgumentException - if the path is invalid
IllegalStateException - if an error occurred in initialisation
IOException - if an error occurs when finding the free space
Since:
Commons IO 1.2, enhanced OS support in 1.3


Copyright 2002-2008 The Apache Software Foundation. All Rights Reserved.