none
¿cómo obtener la letra de la unidad de disco duro de windows? RRS feed

  • Pregunta

  • sé que puede ser una cuestión muy obvia, pero no encuentro cómo obtener "c:\" o "d:\" o la unidad que sea donde se esté ejecutando windows con una aplicación en vb.net
    estoy desarrollando una aplicación en la que genero unos archivos en la raíz del DD. lo hago manualmente, escribiendo "c:\archivo", pero pensando que el sistema operativo no esté en la unidad C, o que ni siquiera exista la unidad C, ¿cómo puedo saber en qué unidad se está trabajando?
    lunes, 4 de agosto de 2008 19:14

Todas las respuestas

  • Hola!

    Yo lo que hago en este caso es utilizar el namespace MY . Creo que sería my.computer.filesystem y aquí puede mirar la opción que más se adapte.

    Te pego un pequeño ejemplo, no te asustes por el código, ya que es puro jovi lo mío con la programación, pero espero que te ayude un poco.

    For i As Integer = 0 To My.Computer.FileSystem.Drives.Count - 1
                    arbol.Nodes.Add(My.Computer.FileSystem.Drives.Item(i).Name).SelectedImageIndex = 1
                Next
                If arbol.Nodes.Count <> My.Computer.FileSystem.Drives.Count Then
                    arbol.Nodes.Clear()
                End If
    Loop

    En este ejemplo verás hasta las unidades que tienes conectadas en tu red (Z:\ | X:\ etc...) Por supuesto lo que te interesa saber es lo que está en negrita. Después de ésto creo que lo tienes bastante sencillo a la hora de guardar el archivo mencionado.

    Bueno, espero que sea esto lo que buscas...o que te haya iluminado un poco. Se puede mejorar seguro, pero eso ya lo dejamos a los programadores de verdad ;-)

    Saludos.
    lunes, 4 de agosto de 2008 22:53
  •  MaNeL Escribió:

    Yo lo que hago en este caso es utilizar el namespace MY . Creo que sería my.computer.filesystem y aquí puede mirar la opción que más se adapte.

    Debo admitir que en ningún momento pensé en usar el namespace My, y justo hace unos días leí sobre la gran maravilla que es.

    De cualquier forma, no encontré lo que buscaba. He visto varios ejemplos que hacen lo mismo, mostrarte todas las unidades de disco del equipo, pero no encuentro la forma de obtener aquella sobre la que está instalado el sistema.

    Lo que terminé haciendo fue esto:

    Dim raiz As String = Environment.SystemDirectory.Remove(3)

    Así obtienes la ruta absoluta de la carpeta del sistema, y eliminas todo a partir del cuarto caracter, resultando "C:\", "D:\" o la unidad que sea. De momento me funciona.

    Se te agradece la ayuda

     MaNeL Escribió:

    Se puede mejorar seguro, pero eso ya lo dejamos a los programadores de verdad ;-)

    ¿Qué pasó? Hay que tener autoestima :-P

    Saludos

    lunes, 4 de agosto de 2008 23:39
  • :-)

    Hola,

     

    Tienes varias opciones.

    La más sencilla es preguntar por 'System.Environment.SystemDirectory'

     

                string winpath = System.Environment.SystemDirectory;
                MessageBox.Show(string.Format(
                    "Windows path: '{0}'\r\nWindows Drive: '{1}'",
                    winpath, winpath.Substring(0, 1)));

    Saludos,

    martes, 5 de agosto de 2008 7:57
    Moderador
  • Para Visual Studio 2017

                    Dim winpath As String = System.Environment.SystemDirectory
                    MessageBox.Show(String.Format("Directorio de Windows: '{0}'  Disco de Windows: '{1}'",
                    winpath, winpath.Substring(0, 2)))

    Gracias.

    jueves, 18 de octubre de 2018 9:44