Skip to main content
.NET Framework Class Library
DriveInfo Class

Provides access to information on a drive.

Inheritance Hierarchy
SystemObject
  System.IODriveInfo

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)
Syntax
<[%$TOPIC/abt1306t_en-us_VS_110_2_0_0_0_0%]> _
<[%$TOPIC/abt1306t_en-us_VS_110_2_0_0_0_1%](True)> _
Public NotInheritable Class DriveInfo _
	Implements [%$TOPIC/abt1306t_en-us_VS_110_2_0_0_0_2%]
[[%$TOPIC/abt1306t_en-us_VS_110_2_0_1_0_0%]]
[[%$TOPIC/abt1306t_en-us_VS_110_2_0_1_0_1%](true)]
public sealed class DriveInfo : [%$TOPIC/abt1306t_en-us_VS_110_2_0_1_0_2%]
[[%$TOPIC/abt1306t_en-us_VS_110_2_0_2_0_0%]]
[[%$TOPIC/abt1306t_en-us_VS_110_2_0_2_0_1%](true)]
public ref class DriveInfo sealed : [%$TOPIC/abt1306t_en-us_VS_110_2_0_2_0_2%]
[<[%$TOPIC/abt1306t_en-us_VS_110_2_0_3_0_0%]>]
[<[%$TOPIC/abt1306t_en-us_VS_110_2_0_3_0_1%]>]
[<[%$TOPIC/abt1306t_en-us_VS_110_2_0_3_0_2%](true)>]
type DriveInfo =  
    class 
        interface [%$TOPIC/abt1306t_en-us_VS_110_2_0_3_0_3%] 
    end

The DriveInfo type exposes the following members.

Constructors
  NameDescription
Public method DriveInfoProvides access to information on the specified drive.
Top
Properties
  NameDescription
Public property AvailableFreeSpaceIndicates the amount of available free space on a drive, in bytes.
Public property DriveFormatGets the name of the file system, such as NTFS or FAT32.
Public property DriveTypeGets the drive type, such as CD-ROM, removable, network, or fixed.
Public property IsReadyGets a value that indicates whether a drive is ready.
Public property NameGets the name of a drive, such as C:\.
Public property RootDirectoryGets the root directory of a drive.
Public property TotalFreeSpaceGets the total amount of free space available on a drive, in bytes.
Public property TotalSizeGets the total size of storage space on a drive, in bytes.
Public property VolumeLabelGets or sets the volume label of a drive.
Top
Methods
  NameDescription
Public method Equals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public method Static member GetDrivesRetrieves the drive names of all logical drives on a computer.
Public method GetHashCodeServes as the default hash function. (Inherited from Object.)
Public method GetTypeGets the Type of the current instance. (Inherited from Object.)
Public method ToStringReturns a drive name as a string. (Overrides ObjectToString.)
Top
Explicit Interface Implementations
  NameDescription
Explicit interface implemetation Private method ISerializableGetObjectDataPopulates a SerializationInfo object with the data needed to serialize the target object.
Top
Remarks

This class models a drive and provides methods and properties to query for drive information. Use DriveInfo to determine what drives are available, and what type of drives they are. You can also query to determine the capacity and available free space on the drive.

Examples

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

Imports System
Imports System.IO

Class Test
    Public Shared Sub Main()
        Dim allDrives() As DriveInfo = DriveInfo.GetDrives()

        Dim d As DriveInfo
        For Each d In allDrives
            Console.WriteLine("Drive {0}", d.Name)
            Console.WriteLine("  File type: {0}", d.DriveType)
            If d.IsReady = True Then
                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)
            End If 
        Next 
    End Sub 
End Class 
'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.
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.
*/
Version Information

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
.NET Framework Security
Platforms

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.