Theme Preview Rss

How to get free space of Hard Disk using script?

The fastest way to get the free disk space is by looking at Windows Explorer, however most of us want to do this in command line or integrate this to a program for any unknown reasons.

The next fastest and easy this is to use dir command. Why? Since it uses Windows native  command.  I don’t know if find first find next function on Assembly or C is faster than this one.

image

On dir result we see the summary at the last line.  All we need to do is place the result of dir command at a text file and parse the last line from the text file.

Here is a sample PERL script so you can understand what I meant.
sub getFreeDiskSpace ()
{
my $dirname = "$_[0]";
#Execution of the DIR command
system("dir $dirname /s > junk");
open FILE,"junk" || die ("Cannot open temporary file - \"junk\"");

#Parsing of the last lines of the DIR results
@_ = <FILE>;
close(FILE);
my $lastline = @_;
my $dir_size = @_[$lastline-2];
my $disk_remain = @_[$lastline-1];
my @fields = split(/ +/,$dir_size);
$_ = $fields[3];
s/,//g; #get rid of commas in the number
my $folder_size=$_;
my $file_count=$fields[1];
@fields = split(/ +/,$disk_remain);
$_ = $fields[3];
s/,//g; #get rid of commas in the number
my $free_space=$_;
my $folder_count=$fields[1];
unlink "junk";
return ($free_space,$folder_size,$file_count,$folder_count);
}

I go this concept from a script I found from the internet.  I modified it and to a function for portability on the future use.  What struck me the most is I am trying to look for a PERL function and this is what I’ve got.  The lesson I got from this function is “Don’t reinvent the wheel, since it is already invented.” So use what’s available on the market.

0 comments:

Post a Comment