Check drive free space.

   
 

//http://bbinjest.codeplex.com/
//Apache License 2.0 (Apache)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Globalization;

namespace BneyBaruch.Ingest.Utils.FileSystem
{
    public static class DriveUtil
    {


        /// <summary>
        ///     Check drive free space.
        /// </summary>
        /// <param name="driveName">Drive name to check free space.</param>
        /// <param name="minimumSpace">Minimum space in bytes.</param>
        /// <returns></returns>
        public static bool IsEnoughSpace(string driveName, long minimumSpace)
        {
            if (string.IsNullOrEmpty(driveName))
                throw new ArgumentNullException("driveName");

            string formattedDriveName = driveName + @":";

            DriveInfo[] drives = DriveInfo.GetDrives();

            DriveInfo drive = drives.FirstOrDefault(
                delegate(DriveInfo innerDrive)
                {
                    return string.Compare(innerDrive.Name, formattedDriveName, true) == 0;
                }
            );

            if (drive == null)
                throw new DriveNotFoundException(string.Format("Drive {0} could not be found.", formattedDriveName));

            if( !drive.IsReady)
                throw new DriveNotFoundException(string.Format("Drive {0} is not ready.", formattedDriveName));

            return drive.TotalFreeSpace > minimumSpace;
        }
   }
}

   
     


Root Directory

   
  

using System;
using System.IO;

class MainClass {
    static void Main(string[] args) {
        if (args.Length == 1) {
            DriveInfo drive = new DriveInfo(args[0]);

            Console.Write("Free space in {0}-drive (in kilobytes): ", args[0]);
            Console.WriteLine(drive.AvailableFreeSpace / 1024);
            return;
        }

        foreach (DriveInfo drive in DriveInfo.GetDrives()) {
            Console.WriteLine("{0} - {1} KB",drive.RootDirectory,
                    drive.AvailableFreeSpace / 1024
                    );
        }
    }
}

   
     


Drive Type

   
  

using System;
using System.IO;

class MainClass {
    static void Main(string[] args) {
        FileInfo file = new FileInfo("c:a.txt");

        // Display drive information.
        DriveInfo drv = new DriveInfo(file.FullName);

        Console.Write("Drive: ");
        Console.WriteLine(drv.Name);

        if (drv.IsReady) {
            Console.Write("Drive type: ");
            Console.WriteLine(drv.DriveType.ToString());
        }
    }
}

   
     


Available Free Space

   
  

using System;
using System.IO;

class MainClass {
    static void Main(string[] args) {
        FileInfo file = new FileInfo("c:a.txt");

        // Display drive information.
        DriveInfo drv = new DriveInfo(file.FullName);

        Console.Write("Drive: ");
        Console.WriteLine(drv.Name);

        if (drv.IsReady) {
            Console.Write("Drive free space: ");
            Console.WriteLine(drv.AvailableFreeSpace.ToString());
        }
    }
}

   
     


Drive Format

   
  
using System;
using System.IO;

class MainClass {
    static void Main(string[] args) {
        FileInfo file = new FileInfo("c:a.txt");
        DriveInfo drv = new DriveInfo(file.FullName);

        Console.Write("Drive: ");
        Console.WriteLine(drv.Name);

        if (drv.IsReady) {
            Console.WriteLine(drv.DriveFormat.ToString());
        }
    }
}

   
     


Is Drive Ready

   
  

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

class Program {
    static void Main(string[] args) {
        // Get info regarding all drives.
        DriveInfo[] myDrives = DriveInfo.GetDrives();

        // Now print stats. 
        foreach (DriveInfo d in myDrives) {
            Console.WriteLine("Name: {0}", d.Name);
            Console.WriteLine("Type: {0}", d.DriveType);

            if (d.IsReady) {
                Console.WriteLine("Free space: {0}", d.TotalFreeSpace);
                Console.WriteLine("Format: {0}", d.DriveFormat);
                Console.WriteLine("Label: {0}
", d.VolumeLabel);
            }
        }
        Console.ReadLine();
    }
}