.p_Titulo: Coloca un titulo al cuadro de dialog
.p_Busqueda: Permite buscar archivos especificos. ejemplo "*.dani*.*"
.p_Abrir_Explorador: Activa o desactiva la apertura del explorador de archivos. (True o False)
.p_Ruta: Puede pasar una ruta directamente si no activa el explorador.
Si por parametros pasa una direccion inexistente o si abre el explorador y lo cierra sin seleccionar archivo retornara un punto "." esto se puede utilizar para enviar algun tipo de mensaje.
Public
Class Archivos' Permite la busqueda de un archivo en el equipo abriendo una ventana de exploracion#
Region "Buscar Archivo"Public Structure Datos_de_archivoPrivate Ubicacion As StringPrivate Unidad, Ruta, Directorio, Archivo, Nombre, Extencion As StringPrivate F_Creacion, F_Ult_Acceso, F_Escritura As StringPrivate Unidades(), Busqueda() As StringPrivate Atributos As String
' Variables publicas para el seteo de las busquedas.Public p_Filtro As String ' Filtra por extencion. ejemplo "Solo texto (*.txt)*.txt"Public p_Titulo As String ' Coloca un titulo al cuadro de dialogPublic p_Busqueda As String ' Permite buscar archivos especificos. ejemplo "*.dani*.*"Public p_Abrir_Explorador As BooleanPublic p_Ruta As String' Funcion que abre el cuadro de navegacionPrivate Function Buscar_Archivo()If p_Filtro = "" Thenp_Filtro = "Todos los archivos (*.*)*.*"
End IfIf p_Titulo = "" Thenp_Titulo = "Titulo de la ventana de exploracion"
End IfDim Open As New OpenFileDialogDim Directory As Directory' Setea el tipo de extencion que permiteOpen.Filter() = p_Filtro
' Pone titulo al cuadro de dialogOpen.Title = p_Titulo
' Obliga a que la ruta ingresada exista...Open.CheckPathExists =
True' No obliga a la existencia del archivo, por lo tanto puede ingresar el nombre de un archivo inexistente.Open.CheckFileExists =
FalseIf p_Busqueda = "" Thenp_Busqueda = ""
End IfIf p_Ruta = "" Thenp_Ruta = "."
End IfIf p_Ruta = "." Thenp_Abrir_Explorador =
TrueEnd IfIf p_Abrir_Explorador = True ThenIf Open.ShowDialog() = DialogResult.OK Thenp_Ruta = Open.FileName
Else ' Si se cancela retornara "."ReDim Busqueda(0)Unidad = "."
Directorio = Unidad
Ruta = Directorio
Archivo = Ruta
Nombre = Archivo
Extencion = Nombre
F_Creacion = Extencion
F_Ult_Acceso = F_Creacion
F_Escritura = F_Ult_Acceso
Busqueda(0) = F_Escritura
Exit FunctionEnd IfElseIf p_Ruta.ToString = "" ThenExit FunctionEnd If' Retorna el directorio, ejemplo \mis documentos\'Si es el rais no retorna nadaIf p_Abrir_Explorador = False ThenTryDirectory.SetCurrentDirectory(Path.GetDirectoryName(p_Ruta))
Catch ex As ExceptionReDim Busqueda(0)Unidad = "."
Directorio = Unidad
Ruta = Directorio
Archivo = Ruta
Nombre = Archivo
Extencion = Nombre
F_Creacion = Extencion
F_Ult_Acceso = F_Creacion
F_Escritura = F_Ult_Acceso
Busqueda(0) = F_Escritura
Exit FunctionEnd TryElseEnd IfIf p_Ruta.EndsWith("\") ThenRandomize()
p_Ruta = p_Ruta & "temporal" & Format(
CInt(Int((99 * Rnd()) + 1)), "00")End If
End If' Si el archivo no existe lo crea en la ruta especificaIf File.Exists(p_Ruta) = False ThenFile.Create(p_Ruta)
End If' Retorna la unidad, ejemplo C:\Unidad = Directory.GetDirectoryRoot(p_Ruta)
Directorio = Directory.GetCurrentDirectory.Remove(0, Unidad.Length)
Directorio = IIf(Directorio.Length <> 0, Directorio & "\", Directorio)
' Retorna la ruta, ejemplo c:\mis docuementos\Ruta = Directory.GetCurrentDirectory
' Retorna el nopmbre del archivo, ejemplo nombre.extIf p_Abrir_Explorador = True ThenArchivo = p_Ruta.Remove(0, Directory.GetCurrentDirectory.Length + 1)
ElseArchivo = Path.GetFileName(p_Ruta)
End If' Retorna el atributo del archivo' Retorna la fechad e creacion del archivoF_Creacion = Directory.GetCreationTime(p_Ruta)
' Retorna la fecha de la ultima vez que fue accesado el archivoF_Ult_Acceso = Directory.GetLastAccessTime(p_Ruta)
' Retorna la fecha en la que se modifico el archivoF_Escritura = Directory.GetLastWriteTime(p_Ruta)
' Retorna un array con los archivos encontrados en la ruta especificaBusqueda = Directory.GetFiles(Ruta, p_Busqueda)
' Retorna los atributos del archivo.Atributos = File.GetAttributes(p_Ruta)
End Function' Retorna propiedadesPublic Property _Unidad()GetBuscar_Archivo()
Return UnidadEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna la unidadPublic Property _Directorio()GetBuscar_Archivo()
Return DirectorioEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna el directorioPublic Property _Ruta()GetBuscar_Archivo()
Return RutaEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna la ruta completa: unidad+directorioPublic Property _Archivo()GetBuscar_Archivo()
Return ArchivoEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna el nombre del archivoPublic Property _Archivos()GetBuscar_Archivo()
Return BusquedaEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna el nombre del archivoPublic Property _Completo()GetBuscar_Archivo()
Return IIf(Ruta = ".", ".", Ruta & "\" & Archivo) ' Si Ruta esta vacio retorna vacio.End GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna todo: ruta + archivoPublic Property _Nombre() ' Retorna solo el nombre del archivoGetBuscar_Archivo()
If Nombre = "." ThenExit PropertyEnd IfDim contador As Integercontador = Archivo.Length - 1
DoIf Archivo.Chars(contador) = Convert.ToChar(".") Or contador = 0 ThenExit DoEnd IfNombre = Archivo.Substring(0, contador).ToString
contador = contador - 1
LoopNombre = Nombre.Remove(Nombre.Length - 1, 1)
IIf(Nombre = "", Archivo, Nombre)
Return NombreEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna solo el nombre del archivoPublic Property _Extencion() ' Retorna solo el nombre del archivoGetBuscar_Archivo()
If Extencion = "." ThenExit PropertyEnd IfDim contador As Integercontador = Archivo.Length - 1
DoIf Archivo.Chars(contador) = Convert.ToChar(".") Or contador = 0 ThenExit DoEnd IfExtencion = Archivo.Remove(0, contador).ToString
contador = contador - 1
LoopIIf(Extencion = "", "", Extencion)
Return ExtencionEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna solo la extencion del archivoPublic Property _F_Creacion()GetBuscar_Archivo()
Return F_CreacionEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna la fecha de creacio del archivoPublic Property _F_ult_Acceso()GetBuscar_Archivo()
Return F_Ult_AccesoEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna la fecha de la ultima vez que se accedio al archivoPublic Property _F_Modificacion()GetBuscar_Archivo()
Return F_EscrituraEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna la fecha de la ultima modificacino del archivoPublic Property _Unidades()GetDim Directory As DirectoryUnidades = Directory.GetLogicalDrives
Return UnidadesEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna un array con las letras de las unidades en el equipoPublic Property _Atributos()GetBuscar_Archivo()
Return AtributosEnd GetSet(ByVal Value)p_Ruta = Value
End SetEnd Property ' Retorna el atributo del archivoPrivate Property _Abrir_Explorador()GetBuscar_Archivo()
Return BusquedaEnd GetSet(ByVal Value)p_Abrir_Explorador = Value
End SetEnd Property ' Determina si se abrira el explorador de archivos o noEnd Structure ' Retorna datos especificos de un archivo en particular#
End RegionEnd
ClassEjemplos de utilizacion:
'' Para poder ejecutar este ejemplo debera tener en el formulario un ListBoxDim directorio As New Archivos.Datos_de_archivo'directorio.p_Filtro = "Solo Texto*.txt" ' Busca archivos con extencion .TXTdirectorio.p_Titulo = "Daniel G. Samborski"
' Si la ruta es inexistente todos los resultados regresan "." directorio.p_Ruta = "C:\Documents and Settings\Administrador\Mis documentos\bartolo2.txt"
'' Abriendo el explorador al pedir cada dato'directorio.p_Abrir_Explorador = True'MessageBox.Show("Archivo: " & directorio._Archivo)'MessageBox.Show("Atributos: " & directorio._Atributos)'MessageBox.Show("Completo: " & directorio._Completo)'MessageBox.Show("Directorio: " & directorio._Directorio)'MessageBox.Show("Extencion: " & directorio._Extencion)'MessageBox.Show("Fecha de Creacion: " & directorio._F_Creacion)'MessageBox.Show("Fecha de modificacion: " & directorio._F_Modificacion)'MessageBox.Show("Fecha de ultimo acceso: " & directorio._F_ult_Acceso)'MessageBox.Show("Nombre: " & directorio._Nombre)'MessageBox.Show("Ruta: " & directorio._Ruta)'MessageBox.Show("Unidad: " & directorio._Unidad)' Pasandole el archivo por una cadena.directorio.p_Abrir_Explorador =
FalseMe.ListBox1.Items.Add("Datos del archivo:")Me.ListBox1.Items.Add("Archivo: " & directorio._Archivo)Me.ListBox1.Items.Add("Atributos: " & directorio._Atributos)Me.ListBox1.Items.Add("Completo: " & directorio._Completo)Me.ListBox1.Items.Add("Directorio: " & directorio._Directorio)Me.ListBox1.Items.Add("Extencion: " & directorio._Extencion)Me.ListBox1.Items.Add("Fecha de Creacion: " & directorio._F_Creacion)Me.ListBox1.Items.Add("Fecha de modificacion: " & directorio._F_Modificacion)Me.ListBox1.Items.Add("Fecha de ultimo acceso: " & directorio._F_ult_Acceso)Me.ListBox1.Items.Add("Nombre: " & directorio._Nombre)Me.ListBox1.Items.Add("Ruta: " & directorio._Ruta)Me.ListBox1.Items.Add("Unidad: " & directorio._Unidad)Me.ListBox1.Items.Add("-------------------")Me.ListBox1.Items.Add("Unidades:")' Busca las letras de todas las unidades de la computadoraDim index As IntegerDim unidades As Arrayunidades = directorio._Unidades
For index = 0 To unidades.Length - 1Me.ListBox1.Items.Add(unidades(index))Next' Busca todas las apariciones de un formato en particular en el directroio.Me.ListBox1.Items.Add("-------------------")Me.ListBox1.Items.Add("Busquedas:")directorio.p_Busqueda = "*dan*.txt"
unidades = directorio._Archivos
For index = 0 To unidades.Length - 1Me.ListBox1.Items.Add(unidades(index))Next


0 comentarios:
Publicar un comentario en la entrada