viernes, 21 de octubre de 2011

Acceso a disco con Visual Basic

Para poder acceder a directorios y ficheros se dispone de varias clases:

Directory, implementa métodos estáticos para acceso a directorios.
DirectoryInfo, implementa métodos de instancia para acceso a directorios, incluye las mismas opciones que Directory, pero es preciso la creación de una instancia de la clase.
Si se van a realizar muchas acciones sobre el mismo directorio, es más cómoda al no tener que introducir la ruta en todas las acciones como habría que hacer con Directory.

File, implementa métodos estáticos para acceso a ficheros.

FileInfo, implementa métodos de instancia para acceso a ficheros, incluye las mismas opciones que File, pero es preciso la creación de una instancia de la clase.
Si se van a realizar muchas acciones sobre el mismo fichero, es más cómoda al no tener que introducir la ruta en todas las acciones como habría que hacer con File.


DriveInfo, permite acceder a información sobre las unidades de disco.



Directory.Exists("C:\mi_directorio")

Devuelve True si existe el fichero y False si no existe

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

        If Directory.Exists("C:\mi_directorio") Then
            MessageBox.Show("O directorio C:\mi_directorioexiste")
        Else
            MessageBox.Show("O directorio C:\mi_directorioNON existe")
        End If



 Directory.CreateDirectory("C:\mi_directorio")

Si el directorio no existe lo crea.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

        Directory.CreateDirectory("C:\mi_directorio")


Directory.Exists("C:\mi_directorio")  +  Directory.CreateDirectory("C:\mi_directorio")

Sería lógico, aunque no necesário, unir las dos opciones anteriores, y comprobar si el directorio existe antes de intentar crearlo

Se comprueba si el directorio no existe, y en ese caso lo crea.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 


        'Si no existe el directorio, lo crea
        'puede valer para asegurarse de que tenemos el directorio creado
        If Not Directory.Exists("C:\mi_directorio") Then
            Directory.CreateDirectory("C:\mi_directorio")
        End If



Directory.Delete("C:\mi_directorio")

Con Delete eliminamos un directorio no vacío.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

          Directory.Delete("C:\mi_directorio")



Directory.GetCurrentDirectory()

Obtiene el directorio actual de trabajo.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

        'recupera el directorio actual de trabajo
        MessageBox.Show(Directory.GetCurrentDirectory())



Directory.Move(origen, destino)

Mueve un directorio, si el nombre de origen y destino son distintos, lo renombra

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

        Directory.Move("C:\mi_directorio", "c:\mi_directorio_nuevo")




Directory.GetFiles("c:\")

Devuelve una tabla de cadenas de caracteres con los ficheros contenidos en la carpeta que se le pasa por parámetro.

Se muestra una implementación para rellenar un ListBox con el contenido recuperado por Directory.GetFiles

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

        'Se declara una tabla de cadenas de caracteres y se carga con los

        'ficheros del directorio C:\
        Dim ficheros() As String = Directory.GetFiles("c:\")

        'Se vacia el ListBox por si ya contiene datos
        ListBox1.Items.Clear()

        'Para cada dato contenido en ficheros
        'se añade una entrada en el ListBox1
        For Each dato As String In ficheros
            ListBox1.Items.Add(dato)
        Next





Directory.GetDirectories("c:\")

Devuelve una tabla de cadenas de caracteres con los directorios contenidos en la carpeta que se le pasa por parámetro.

Se muestra una implementación para rellenar un ListBox con el contenido recuperado por Directory.GetDirectories

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 


        'Se declara una tabla de cadenas de caracteres y se carga con los
        'directorios del directorio C:\
        Dim directorios() As String = Directory.GetDirectories("c:\")

        'Se vacia el ListBox por si ya contiene datos
        ListBox1.Items.Clear()

        'Para cada datos contenido en ficheros
        'se añade una entrada en el ListBox1
        For Each dato As String In directorios
            ListBox1.Items.Add(dato)
        Next





Directory.GetCreationTime("c:\mi_directorio")

Devuelve un objeto tipo Date con la fecha de creación del directorio o fichero que se le pasa por parámetro.

Se muestra una implementación para mostrar la fecha al usuario mediante un MessageBox.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 



        'devuelve la fecha de creación de un fichero o directorio
        MessageBox.Show(Directory.GetCreationTime("c:\vicente").ToString)


NOTA 1: También existen


        Directory.GetLastAccessTime() - Devuelve la fecha de ultimo acceso.
        Directory.GetLastWriteTime() Devuelve la fecha de modificación.


NOTA 2:
Asímismo existen las mismas funciones acabadas en Utc (Coordinated Universal Time - Tiempo Universal Coordinado, equivalente al antes conocido como hora de Greenwich ), las cuales devuelven el valor de la fecha y hora pero basandose en la hora UTC.

        Directory.GetCreationTimeUtc()
        Directory.GetLastAccessTimeUtc()
        Directory.GetLastWriteTimeUtc()

NOTA 3
También existe otra variante de todas estas funciones, pero con Set en lugar de Get, lo que permite modificar las horas antes indicadas:


        Directory.SetCreationTimeUtc()
        Directory.SetLastAccessTimeUtc()
        Directory.SetLastWriteTimeUtc()

        Directory.SetCreationTimeUtc()
        Directory.SetLastAccessTimeUtc()
        Directory.SetLastWriteTimeUtc()






Directory.GetLogicalDrives()


Devuelve una tabla de cadenas de caracteres con las unidades lógicas presentes en el sistema.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Ejemplo de código
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 


        'declaro una tabla de cadenas de caracteres y la cargo
        Dim letras_unidad() As String = Directory.GetLogicalDrives()

        'vacio el ListBox por si ya contiene datos
        ListBox1.Items.Clear()

        'para cada dato
        'añado una entrada en el ListBox1
        For Each dato As String In letras_unidad
            ListBox1.Items.Add(dato)
        Next

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...