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