Scaneo de directorios en .NET

What’s up people? Hoy decidí hacer un pequeño aporte a la comunidad mediante el blog, y por eso les traigo una forma de recorrer y obtener datos sobre los archivos de una PC utilizando VB.NET.

La historia es que en el trabajo tuve que hacer un pequeño aplicativo que e alguna manera indexaba archivos con extensiones específicas para luego hacer comparación de versiones y demás.

Bueno, entonces pensé que capaz que alguien podría estar interesado en una funcionalidad similar y por eso comparto este pequeño algoritmo recursivo que recorre en profundidad los directorios de una PC a partir de uno de origen, y es capaz de extraer cierta información de los archivos que encuentra.

Disfruten y si a alguien le sirvió comenten! (si no les sirvió para nada también comenten, asi no vuelvo a cometer el error 😉 ).

Salute!

El código prometido:

public Shared Sub ExplorarDirectorios(ByVal pCurrentDir As String)
Try
For Each file As String In My.Computer.FileSystem.GetFiles(pCurrentDir)
Dim objFile As FileInfo = New FileInfo(file)
Dim fVersion As FileVersionInfo = FileVersionInfo.GetVersionInfo(file)
'FileIndex es un objeto miÃ�­o donde almeceno las propiedades que me interesan
'dejar registradas
Dim fIndex As New FileIndex
With fIndex
.IndexDate = Now
.FileName = objFile.Name
.FileCreationDate = objFile.CreationTime
.FileModifiedDate = objFile.LastWriteTime
.FilePath = objFile.DirectoryName
'algunos tipos de archivos no cuentan con una version
If Not fVersion.FileVersion Is Nothing Then
.FileVersion = fVersion.FileVersion
Else
.FileVersion = ""
End If
End With
'aca podes agregar el objeto FIleIndex a una coleccion o guardarlo
'en base de datos
Next

For Each dir As String In My.Computer.FileSystem.GetDirectories(pCurrentDir)
ExplorarDirectorios(dir)
Next
Catch ex As UnauthorizedAccessException
Console.WriteLine("No se pudo obtener acceso al directorio " & pCurrentDir)
End Try
End Sub
Anuncios

2 comments so far

  1. Oscar on

    Te falta un if en el código, por cierto una pregunta, del fIndex, podrías pasarme la definición?

    Muchas Gràcias, ansio ver funcionando el código porque me urge su uso para un proyecto del trabajo, gracias!

  2. gonzaling on

    Oscar como va? Es verdad lo que decís, solo que en realidad sobra un End If 😛
    Ese End If corresponde a una simple función que lo que hacía era tomar la extensión del archivo y ver si era la extensión que yo estaba buscando para indexar, por eso no lo pude en el código. En fin, gracias por avisar, ya quedó arreglado.

    Con respecto a la definición de la clase FileIndex, te dejo el código subido [ acá ].

    Espero te sirva, gracias por pasarte por el blog 😉

    [ Clase FileIndex ]


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: