• Viernes 15 de Noviembre de 2024, 07:53

Autor Tema:  Getfiles Con Patrón  (Leído 1248 veces)

elbarto

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Getfiles Con Patrón
« en: Martes 21 de Diciembre de 2004, 12:33 »
0
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
  1. Dim di As New System.IO.DirectoryInfo(gsFilePath)
  2. Dim fiFicheros As System.IO.FileInfo() = di.GetFiles("ABC?????????*.xml")
  3.  

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

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Getfiles Con Patrón
« Respuesta #1 en: Domingo 26 de Diciembre de 2004, 14:14 »
0
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
  1.     Dim di As New DirectoryInfo(gsFilePath)
  2.  
  3.  
  4.         Dim fiTemp() As FileInfo = di.GetFiles("ABC*.xml")
  5.         Dim fiFicheros(0) As FileInfo
  6.         Dim i As Integer = 0
  7.  
  8.         'for para contar cuantos hay
  9.         For Each fil As FileInfo In fiTemp
  10.             If (fil.Name.Length = 16) Then                
  11.                 i = i + 1
  12.             End If
  13.         Next
  14.  
  15.         ReDim fiFicheros(i - 1)
  16.  
  17.         i = 0
  18.         'for para llenar el nuevo arreglo
  19.         For Each fil As FileInfo In fiTemp
  20.             If (fil.Name.Length = 16) Then
  21.                 fiFicheros(i) = fil
  22.                 i = i + 1
  23.             End If
  24.         Next
  25.  
  26.  
  27.         For i = 0 To fiFicheros.Length - 1
  28.             LstFiles.Items.Add(fiFicheros(i).Name)
  29.         Next
  30.  

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.....


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

elbarto

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Getfiles Con Patrón
« Respuesta #2 en: Lunes 27 de Diciembre de 2004, 09:34 »
0
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.