This topic has not yet been rated - Rate this topic

DriveInfo.TotalFreeSpace Property

Updated: July 2010

Gets the total amount of free space available on a drive.

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)
public long TotalFreeSpace { get; }

Property Value

Type: System.Int64
The total free space available on a drive, in bytes.
Exception Condition
UnauthorizedAccessException

Access to the drive information is denied.

DriveNotFoundException

The drive is not mapped or does not exist.

IOException

An I/O error occurred (for example, a disk error or a drive was not ready).

This property indicates the total amount of free space available on the drive, not just what is available to the current user.

The following code example demonstrates the use of the DriveInfo class to display information about all of the drives on the current system.


using System;
using System.IO;

class Test
{
    public static void Main()
    {
        DriveInfo[] allDrives = DriveInfo.GetDrives();

        foreach (DriveInfo d in allDrives)
        {
            Console.WriteLine("Drive {0}", d.Name);
            Console.WriteLine("  File type: {0}", d.DriveType);
            if (d.IsReady == true)
            {
                Console.WriteLine("  Volume label: {0}", d.VolumeLabel);
                Console.WriteLine("  File system: {0}", d.DriveFormat);
                Console.WriteLine(
                    "  Available space to current user:{0, 15} bytes", 
                    d.AvailableFreeSpace);

                Console.WriteLine(
                    "  Total available space:          {0, 15} bytes",
                    d.TotalFreeSpace);

                Console.WriteLine(
                    "  Total size of drive:            {0, 15} bytes ",
                    d.TotalSize);
            }
        }
    }
}
/* 
This code produces output similar to the following:

Drive A:\
  File type: Removable
Drive C:\
  File type: Fixed
  Volume label: 
  File system: FAT32
  Available space to current user:     4770430976 bytes
  Total available space:               4770430976 bytes
  Total size of drive:                10731683840 bytes 
Drive D:\
  File type: Fixed
  Volume label: 
  File system: NTFS
  Available space to current user:    15114977280 bytes
  Total available space:              15114977280 bytes
  Total size of drive:                25958948864 bytes 
Drive E:\
  File type: CDRom

The actual output of this code will vary based on machine and the permissions
granted to the user executing it.
*/


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Date

History

Reason

July 2010

Updated exception information.

Content bug fix.

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
This property IS subject to disk quotas
Despite what the documentation says, this property is subject to per-user quotas.

If you look at this property using Reflector, you'll see that it's simply calling the Win32 GetDiskFreeSpaceEx API and returning the second 'out' value -- that is, 'lpTotalNumberOfBytes'. The documentation for GetDiskFreeSpaceEx states that this number is subject to user quotas.