elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ¿Cómo listar solo unidades DVD y ver su información?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo listar solo unidades DVD y ver su información?  (Leído 2,306 veces)
Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
¿Cómo listar solo unidades DVD y ver su información?
« en: 28 Marzo 2021, 12:12 pm »

Quiero hacer un programa en consola C#, en el cual me muestre cuantas hay y su información. Solo quiero que me muestre unidades de discos DVD, aunque sean SATA, IDE o por USB.

Por ejemplo:
Citar
Unidad F:
     Etiqueta de volumen : 58 Fotos 2020 Tamaño total de la unidad: 4,26 GB.

Unidad G:
     Etiqueta de volumen : Visual Tamaño total de la unidad: 3,09 GB.

Quiero hacerlo así y ya está. El ejemplo que he visto te cuenta todas las unidades como indica abajo y no me interesa.
Código
  1. using System;
  2. using System.IO;
  3.  
  4. namespace Informacion_lector_Consola_01
  5. {
  6.    class Program
  7.    {
  8.        static void Main(string[] args)
  9.        {
  10.            #region Configuración ventana.
  11.            // Título de la ventana.
  12.            Console.Title = "Información lector.";
  13.  
  14.            // Tamaño de la ventana, x, y.
  15.            Console.SetWindowSize(80, 35);
  16.  
  17.            // Color de fondo.
  18.            Console.BackgroundColor = ConsoleColor.White;
  19.  
  20.            // Color de las letras.
  21.            Console.ForegroundColor = ConsoleColor.Black;
  22.  
  23.            // Limpiar pantalla y dejarlo todo en color de fondo.
  24.            Console.Clear();
  25.  
  26.            // Visible el cursor.
  27.            Console.CursorVisible = true;
  28.            #endregion
  29.  
  30.            DriveInfo[] allDrives = DriveInfo.GetDrives();
  31.  
  32.            foreach (DriveInfo d in allDrives)
  33.            {
  34.                Console.WriteLine("Unidad {0}", d.Name);
  35.                Console.WriteLine("  Tipo de unidad:                 {0}", d.DriveType);
  36.                if (d.IsReady == true)
  37.                {
  38.                    Console.WriteLine("  Etiqueta de volumen :       {0}", d.VolumeLabel);
  39.                    Console.WriteLine("  Sistema de archivo:         {0}", d.DriveFormat);
  40.                    Console.WriteLine(
  41.                        "  Espacio disponible para el usuario actual:{0, 15} bytes",
  42.                        d.AvailableFreeSpace);
  43.  
  44.                    Console.WriteLine(
  45.                        "  Espacio total disponible:                 {0, 15} bytes",
  46.                        d.TotalFreeSpace);
  47.  
  48.                    Console.WriteLine(
  49.                        "  Tamaño total de la unidad:                {0, 15} bytes ",
  50.                        d.TotalSize);
  51.                }
  52.            }
  53.  
  54.            // Pulse cualquier tecla para continuar.
  55.            Console.ReadKey();
  56.        }
  57.    }
  58. }

¿Alguna idea?

Saludos.


En línea

K-YreX


Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: ¿Cómo listar solo unidades DVD y ver su información?
« Respuesta #1 en: 28 Marzo 2021, 13:59 pm »

Te dejo dos opciones que te pueden servir. Ambas están sacadas del siguiente link: https://bytes.com/topic/c-sharp/answers/257251-how-detect-hard-drives

  • Opción 1
Código
  1. using System;
  2. using System.Runtime.InteropServices;
  3.  
  4. public class ListDrives {
  5.  
  6.  public enum DriveType : int {
  7.    Unknown = 0,
  8.    NoRoot = 1,
  9.    Removable = 2,
  10.    Localdisk = 3,
  11.    Network = 4,
  12.    CD = 5,
  13.    RAMDrive = 6
  14.  }
  15.  
  16.  [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
  17.  public static extern int GetDriveType(string s);
  18.  
  19.  public static void Main(string[] args) {
  20.    foreach(string s in Environment.GetLogicalDrives())
  21.      Console.WriteLine(string.Format("Drive {0} is a {1}", s, Enum.GetName(typeof(DriveType), GetDriveType(s))));
  22.  }
  23. }

  • Opción 2:
Código
  1. using System;
  2. using System.Management;
  3.  
  4. public class ListDrives {
  5.  public static void Main(string[] args) {
  6.    string query = "SELECT * FROM win32_logicaldisk";
  7.    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
  8.    foreach(ManagementObject obj in searcher.Get())
  9.      Console.WriteLine("Objeto: " + obj.GetText(TextFormat.Mof)); // Aqui tendrias que filtrar segun DriveType
  10.  }
  11. }


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: ¿Cómo listar solo unidades DVD y ver su información?
« Respuesta #2 en: 29 Marzo 2021, 21:07 pm »

Muchísimas gracias. Voy a experimentar.

  ;-) ;-) ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines