![]() |
Neste artigo vou mostrar como podemos informação de todos os drives do sistema local usando C#. |
A linguagem C# oferece a classe DriveInfo que modela uma unidade e fornece métodos e propriedades para consultar informações sobre a unidade.
Usamos a classe DriveInfo para determinar quais unidades estão disponíveis e quais os tipo de unidades, e, também podemos consultar a capacidade e o espaço livre disponível na unidade.
Vejamos um exemplo prático usando a classe DriveInfo.
recursos usados:
Criando o projeto Console
Crie um projeto do tipo Console App(.NET Framework) com o nome DemoDriveInfo
A seguir inclua o código abaixo no arquivo Program.cs :
using System;
using System.Diagnostics;
using System.IO;
namespace ModoConsole
{
class Program
{
static void Main(string[] args)
{
ExibeInforTodosDrives();
Console.ReadLine();
}
public static void ExibeInforTodosDrives() { DriveInfo[] drives = DriveInfo.GetDrives(); Array.ForEach(drives, drive => { if (drive.IsReady) { Console.WriteLine($"Drive {drive.Name} esta pronto."); Console.WriteLine($"Espaço disponível livre: {drive.AvailableFreeSpace} bytes ou {FormataBytes(drive.AvailableFreeSpace)} "); Console.WriteLine($"Formato : {drive.DriveFormat}"); Console.WriteLine($"Tipo: {drive.DriveType}"); Console.WriteLine($"Nome: {drive.Name}"); Console.WriteLine("Nome Completo da Raiz : " + $"{drive.RootDirectory.FullName}"); Console.WriteLine($"Espaço total Livre : {drive.TotalFreeSpace} bytes ou {FormataBytes(drive.TotalFreeSpace)}"); Console.WriteLine($"Espaço Total : {drive.TotalSize} bytes ou {FormataBytes(drive.TotalSize)}"); Console.WriteLine($"Volume Label: {drive.VolumeLabel}"); } else { Console.WriteLine($"Drive {drive.Name} não esta pronto."); } Console.WriteLine(); }); } private static string FormataBytes(long bytes)
{
if (bytes >= 0x1000000000000000) { return ((double)(bytes >> 50) / 1024).ToString("0.### EB"); }
if (bytes >= 0x4000000000000) { return ((double)(bytes >> 40) / 1024).ToString("0.### PB"); }
if (bytes >= 0x10000000000) { return ((double)(bytes >> 30) / 1024).ToString("0.### TB"); }
if (bytes >= 0x40000000) { return ((double)(bytes >> 20) / 1024).ToString("0.### GB"); }
if (bytes >= 0x100000) { return ((double)(bytes >> 10) / 1024).ToString("0.### MB"); }
if (bytes >= 0x400) { return ((double)(bytes) / 1024).ToString("0.###") + " KB"; }
return bytes.ToString("0 Bytes");
}
}
}
|
Temos o método ExibeInforTodosDrives() que usa o método GetDrives() para recuperar os nomes das unidades de todas as unidades lógicas do computador.
A seguir
usamos a propriedade IsReady que determina se a
unidade está pronta para ser consultada, gravada ou lida
mas não é muito confiável, pois esse estado pode mudar rapidamente. Ao usar
IsReady, certifique-se de considerar o caso em que a unidade também não está
pronta.
Depois usamos as propriedades da classe
DriveInfo:
Executando este código teremos o resultado abaixo:
Usamos o método FormataBytes() para formatar o resultado de bytes para Gigabytes no exemplo.
Pegue
o projeto completo aqui :
DemoDriveInfo.zip
Romanos 8:32
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
C# - Novidades da versão 7.0 - Macoratti
C# - O tipo Dynamic - Macoratti.net
C# - Localizando Arquivos - Macoratti
C# - Usando OpenFileDialog - Macoratti
C# - Exibindo Arquivos e diretórios no TreeView - Macoratti
C# - LINQ : Calculando o total e o tamanho de arquivos em ... - Macoratti
C# - Copiando Arquivos - Macoratti
C# - Compactando e Descompactando diretórios - Macoratti.net