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

