Take the 2-minute tour ×

I want to use the perl to check the hard disk space on Windows, is there any way to do it?

Best Regards,

share|improve this question

4 Answers 4

up vote 5 down vote accepted

see Win32::DriveInfo

($SectorsPerCluster, $BytesPerSector, $NumberOfFreeClusters, 
$TotalNumberOfClusters, $FreeBytesAvailableToCaller, $TotalNumberOfBytes, $TotalNumberOfFreeBytes) =  Win32::DriveInfo::DriveSpace( drive );

   $SectorsPerCluster          - number of sectors per cluster.
   $BytesPerSector             - number of bytes per sector.
   $NumberOfFreeClusters       - total number of free clusters on the disk.
   $TotalNumberOfClusters      - total number of clusters on the disk.
   $FreeBytesAvailableToCaller - total number of free bytes on the disk that
                                 are available to the user associated with the
                                 calling thread, b.
   $TotalNumberOfBytes         - total number of bytes on the disk, b.
   $TotalNumberOfFreeBytes     - total number of free bytes on the disk, b.
share|improve this answer

Most of the time, a portable solutions such as Filesys::DfPortable is the better choice. Recognise the opportunity to be virtuously lazy.

share|improve this answer

Win32 Drive Info should do the trick.
I guess your are looking for


share|improve this answer

Another way to query the system state is to query the Windows Management Interface using DBD::WMI.

The following query should give you the basic info about disk space:

Select DeviceID,Size,FreeSpace from Win32_LogicalDisk
share|improve this answer

Your Answer


