elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [SOLUCIONADO] Una pregunta sobre IO.Directory.GetFiles
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Una pregunta sobre IO.Directory.GetFiles  (Leído 10,317 veces)
_katze_

Desconectado Desconectado

Mensajes: 140



Ver Perfil WWW
Re: Una pregunta sobre IO.Directory.GetFiles
« Respuesta #10 en: 27 Enero 2013, 23:51 pm »

pero al hacerlo con mi clase no necesits permisos de administrador ni ninguna magia negra. como con el frame :-*


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Una pregunta sobre IO.Directory.GetFiles
« Respuesta #11 en: 9 Junio 2013, 09:07 am »

A pesar de la bonita Class de _katze_ (por cierto, gracias), y después de mucho buscar la manera más óptima ...al final me quedo con esta función:

Código
  1. Private Function Get_Files(ByVal Path As String, ParamArray exts() As String) As List(Of IO.FileInfo)
  2.    Return New IO.DirectoryInfo(Path).GetFiles.Where(Function(o) exts.Contains(o.Extension)).ToList
  3. End Function

Código
  1. For Each file In Get_Files("C:\Windows", {".dll", ".ini"}) : MsgBox(file.Name) : Next

Más sencillo y eficaz creo que sería imposible!

Lo malo es que no se me ocurre como hacer para que la función me permita buscar de manera recursiva,
me gustaría poder implementar la recursividad en esa función, preservando su maravillosa sencillez, elegancia y eficacia, es decir...que no quiero llenar la función de Fors para hacer largos recorridos en los subdirectorios estropeando la performance de la función.

¿Alguien tiene idea de que modificaciones necesita la función para hacerla recursiva?


« Última modificación: 9 Junio 2013, 09:11 am por EleKtro H@cker » En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: [SOLUCIONADO] Una pregunta sobre IO.Directory.GetFiles
« Respuesta #12 en: 10 Junio 2013, 20:13 pm »

Ahora sí, mejor imposible!, aquí tienen la forma más eficiente:

Código
  1.    Private Function Get_Files(ByVal rootDirectory As String, ByVal recursive As Boolean, ParamArray exts() As String) As List(Of IO.FileInfo)
  2.        Dim searchOpt As IO.SearchOption = If(recursive, IO.SearchOption.AllDirectories, IO.SearchOption.TopDirectoryOnly)
  3.        Return IO.Directory.GetFiles(rootDirectory, "*.*", searchOpt).Where(Function(o) exts.Contains(IO.Path.GetExtension(o))).Select(Function(p) New IO.FileInfo(p)).ToList
  4.    End Function

Ejemplo de uso:

Código
  1.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2.        For Each file In Get_Files("C:\Windows", True, {".dll", "DLL"}) : MsgBox(file.Name) : Next
  3.    End Sub

EDITO: Lo único imperfecto es que no es Ignore case, así que habría que usar la función así:
Código
  1. For Each file In Get_Files("C:\Windows", True, {".dll", "DLL"}) : MsgBox(file.Name) : Next

 ;D
« Última modificación: 10 Junio 2013, 20:19 pm por EleKtro H@cker » En línea



Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pregunta sobre Host(solucionado)
Dudas Generales
Senior++ 2 6,897 Último mensaje 6 Septiembre 2011, 17:05 pm
por Senior++
[Solucionado] pregunta sobre end if
Programación Visual Basic
CAR3S? 8 4,061 Último mensaje 21 Octubre 2011, 19:06 pm
por CAR3S?
[Solucionado]Pregunta sobre hydra!
Dudas Generales
jesusarturoes 2 4,025 Último mensaje 13 Agosto 2012, 23:00 pm
por Jenag
[SOLUCIONADO] Problema en un While + variable + io.directory.getfiles
.NET (C#, VB.NET, ASP)
Eleкtro 0 2,347 Último mensaje 30 Enero 2013, 19:32 pm
por Eleкtro
[solucionado] Pregunta sobre numero en c++
Programación C/C++
elkiy 1 2,469 Último mensaje 28 Mayo 2013, 21:18 pm
por elkiy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines