Descobrindo espaço livre em disco ou pasta específica

0

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.

espaco em disco

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

 

Compartilhe.