CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Getfiles Con Patrón
(1/1)
elbarto:
Hola.
Tengo un directorio donde hay ficheros con el siguiente formato: ABCAAAAMMDD.xml y otros con el formato ABCAAAAMMDDN.xml.
Por ejemplo ABC20041221.xml y ABC200412219.xml.
El primer tipo formado por ABC más una fecha, y el segundo tipo además lleva un número adicional.
Necesito listar los archivos que tienen el segundo ormato (ABC + por lo menos 9 caracteres . xml). Utilizando el siguiente código:
--- Código: Text ---Dim di As New System.IO.DirectoryInfo(gsFilePath) Dim fiFicheros As System.IO.FileInfo() = di.GetFiles("ABC?????????*.xml")
GetFiles me devuelve tanto los que tienen solo la fecha como los que tienen fecha + un número.
Usando este patrón en la utilidad de búsqueda del windows me devuelve solo los que yo quiero.
¿Alguien sabe porqué? ¿Cómo podría obtener únicamente los archivos que quiero?
Ejemplo:
Ficheros en el directorio:
ABC20041221.xml
ABC200412210.xml
ABC200412211.xml
ABC200412212.xml
Quiero que getfiles me devuelva:
ABC200412210.xml
ABC200412211.xml
ABC200412212.xml
Y usando ese patrón me devuelve todos
Gracias de antemano.
sergiotarrillo:
Cuando una función no se adecue a lo que tu quieres, por mas que intentas y no pasa nada, entonces lo que debes hacer es aplicarle la magia a la funcion, bueno le hize la función y aqui te la mando:
--- Código: Text --- Dim di As New DirectoryInfo(gsFilePath) Dim fiTemp() As FileInfo = di.GetFiles("ABC*.xml") Dim fiFicheros(0) As FileInfo Dim i As Integer = 0 'for para contar cuantos hay For Each fil As FileInfo In fiTemp If (fil.Name.Length = 16) Then i = i + 1 End If Next ReDim fiFicheros(i - 1) i = 0 'for para llenar el nuevo arreglo For Each fil As FileInfo In fiTemp If (fil.Name.Length = 16) Then fiFicheros(i) = fil i = i + 1 End If Next For i = 0 To fiFicheros.Length - 1 LstFiles.Items.Add(fiFicheros(i).Name) Next
P.D.: Si no quieres contar los archivos puedes darle un tamaño predeterminado, lo que unico que gastarias seria espacios de memoria en vano......
P.D.: Pruebalo y me dices como te jue.....
elbarto:
Gracias Serghio, ya había hecho algo parecido para tratar sólo los archivos que me interesan.
Pero muchas gracias de todas formas por tu interés.
Un saludo.
Navegación
Ir a la versión completa