Recentemente me surgiu uma dúvida de como implementar um código para descobrir quantos bytes livres uma unidade de disco em meu computador possuía.
A seguir vou mostrar para vocês um algoritmo usando winAPI que resolveu o meu problema:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace GetFree
{
    class Program
    {
        [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetDiskFreeSpaceEx(string lpDirectoryName,
           out ulong lpFreeBytesAvailable,
           out ulong lpTotalNumberOfBytes,
           out ulong lpTotalNumberOfFreeBytes);
        static void Main(string[] args)
        {
            ulong FreeBytesAvailable;
            ulong TotalNumberOfBytes;
            ulong TotalNumberOfFreeBytes;
            bool success = GetDiskFreeSpaceEx(@"c:\\",
                                              out FreeBytesAvailable,
                                              out TotalNumberOfBytes,
                                              out TotalNumberOfFreeBytes);
            if (!success)
                throw new System.ComponentModel.Win32Exception();
            Console.WriteLine("Total numero de bytes livres:      {0,15:D}", FreeBytesAvailable);
            Console.WriteLine("Total numero de bytes existentes:     {0,15:D}", TotalNumberOfBytes);
            Console.WriteLine("Total numero de bytes livres e desalocados: {0,15:D}", TotalNumberOfFreeBytes);
            Console.ReadLine();
        }
      
      
    }
}
É um projeto simples mas que com certeza vai ajudar bastante ou para simples conhecimento em como descobrir o espaço livre de alguma pasta ou unidade de disco!
Eu fiz upload do projeto no meu Github , faça download aqui 
Pessoal, por hoje é só! 😉
Porque dificultar? Código simples .NET

 
		 
									 
					