Bom dia Nicolas, tudo bom?
Temos um conjunto de classes que podem te ajudar:
Para informações do sistema de arquivos:
- System.IO.FileInfo
- System.IO.DirectoryInfo
- System.IO.DriveInfo
- System.IO.Directory
- System.IO.File
https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/file-system/how-to-get-information-about-files-folders-and-drives
Para informações de Memória:
https://docs.microsoft.com/pt-br/dotnet/api/system.gc?view=net-6.0
Algumas informações sobre o ambiente:
Tem a disposição também o pacote:
Que me permite criar uma consulta ao sistema da seguinte forma:
ManagementObjectSearcher mos =
new ManagementObjectSearcher("select * from Win32_OperatingSystem");
foreach (var item in mos.Get())
{
.....
}
https://docs.microsoft.com/pt-br/dotnet/api/system.management?view=dotnet-plat-ext-6.0
https://docs.microsoft.com/pt-br/windows/win32/cimwin32prov/win32-operatingsystem
Fiz alguns Helloworlds:
using System.Management;
Console.WriteLine("Informações do Computador");
Console.WriteLine("\n");
Console.WriteLine("============================================");
DriveInfo informacaoDrive = new DriveInfo(@"C:\");
Console.WriteLine($"Espaço Livre: {informacaoDrive.TotalFreeSpace}");
Console.WriteLine($"Volume: {informacaoDrive.Name}");
Console.WriteLine("\n");
Console.WriteLine("============================================");
Console.WriteLine($"Total de Memoria: {GC.GetTotalMemory(false)}");
Console.WriteLine("\n");
Console.WriteLine("============================================");
Console.WriteLine($"Número de Processos : {Environment.ProcessorCount}");
Console.WriteLine("\n");
Console.WriteLine("============================================");
Console.WriteLine($"Nome da Máquina : {Environment.MachineName}");
Console.WriteLine("\n");
Console.WriteLine("============================================");
Console.WriteLine($"Versão do SO : {Environment.OSVersion}");
Console.WriteLine("\n");
Console.WriteLine("============================================");
Console.WriteLine($"Versão do SO : {Environment.OSVersion}");
Console.WriteLine("\n");
Console.WriteLine("USANDO ManagementObject");
ManagementObjectSearcher mos =
new ManagementObjectSearcher("select * from Win32_OperatingSystem");
foreach (ManagementObject item in mos.Get())
{
if (item["CSDVersion"]!=null)
{
Console.WriteLine(item["CSDVersion"].ToString());
}
if (item["OSType"] != null)
{
Console.WriteLine(item["OSType"].ToString());
}
if (item["SerialNumber"] != null)
{
Console.WriteLine(item["SerialNumber"].ToString());
}
if (item["OSLanguage"] != null)
{
Console.WriteLine(item["OSLanguage"].ToString());
}
if (item["BootDevice"] != null)
{
Console.WriteLine(item["BootDevice"].ToString());
}
if (item["CurrentTimeZone"] != null)
{
Console.WriteLine(item["CurrentTimeZone"].ToString());
}
if (item["Distributed"] != null)
{
Console.WriteLine(item["Distributed"].ToString());
}
if (item["Organization"] != null)
{
Console.WriteLine(item["Organization"].ToString());
}
}
Dê uma olhada neste link também:
https://stackoverflow.com/questions/4742389/get-pc-system-information-on-windows-machine
Espero que possa ajudar! Qualquer dúvida estamos a disposição.
Att.