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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ayuda: Enumerar ficheros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda: Enumerar ficheros  (Leído 2,315 veces)
Tomas1982

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Ayuda: Enumerar ficheros
« en: 14 Septiembre 2016, 17:38 pm »

Buenas ante todo: Tengo un código que me enumera la cantidad de ficheros encontrados en un directorio, la cuestión es que quiero  enumerar estos ficheros por tipo de exenciones para poder generar un informe con esa información y no tengo ni la mas mínima idea de como hacerlo, me pudieran ayudar...

Este es parte del código
Código
  1.  
  2. FolderBrowserDialog1.ShowDialog()
  3. TextBox1.Text = FolderBrowserDialog1.SelectedPath
  4. Dim dirpath As String = FolderBrowserDialog1.SelectedPath
  5. filepaths = Directory.GetFiles(dirpath, "*", SearchOption.AllDirectories)
  6. Me.ListBox1.DataSource = filepaths
  7. Me.Text = ListBox1.Items.Count.ToString() & ".Archivos"
  8.  
  9.  


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: Ayuda: Enumerar ficheros
« Respuesta #1 en: 14 Septiembre 2016, 18:04 pm »

Puedes agrupar los archivos por su extensión de archivo utilizando el método Enumerable.GroupBy() de LINQ. Te escribo un ejemplo:

Código
  1. Dim groups As IEnumerable(Of IGrouping(Of String, FileInfo)) =
  2.    New DirectoryInfo(".\").EnumerateFiles("*", SearchOption.TopDirectoryOnly).
  3.                            GroupBy(Of String)(Function(file As FileInfo) file.Extension)
  4.  
  5. For Each group As IGrouping(Of String, FileInfo) In groups
  6.  
  7.    Dim sb As New StringBuilder(capacity:=(group.Count * 260)) ' Suggested capacity. 260 = MAX_PATH
  8.    With sb
  9.        .AppendFormat("Group of file extension '{0}'", group.Key)
  10.        .AppendLine()
  11.        .AppendLine(String.Join(Environment.NewLine, group))
  12.    End With
  13.    Console.WriteLine(sb.ToString())
  14.  
  15. Next group

Resultado de ejecución:
Cita de: Visual Studio
Group of file extension: '.exe'
WindowsApplication1.exe
WindowsApplication1.vshost.exe

Group of file extension: '.config'
WindowsApplication1.exe.config
WindowsApplication1.vshost.exe.config

Group of file extension: '.pdb'
WindowsApplication1.pdb

Group of file extension: '.xml'
WindowsApplication1.xml

Saludos!


« Última modificación: 14 Septiembre 2016, 18:22 pm por Eleкtro » En línea

Tomas1982

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: Ayuda: Enumerar ficheros
« Respuesta #2 en: 14 Septiembre 2016, 20:27 pm »

Mi hermano me funciona perfecto, pero como logro contar la cantidad de fichero por tipo de extensión
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: Ayuda: Enumerar ficheros
« Respuesta #3 en: 14 Septiembre 2016, 20:40 pm »

como logro contar la cantidad de fichero por tipo de extensión

Tomando como ejemplo el código que publiqué arriba, puedes hacerlo de la siguiente manera:

Código
  1. Dim groups As IEnumerable(Of IGrouping(Of String, FileInfo)) =
  2.    New DirectoryInfo(".\").EnumerateFiles("*", SearchOption.TopDirectoryOnly).
  3.                            GroupBy(Of String)(Function(file As FileInfo) file.Extension)
  4.  
  5. Dim totalFileCount As Integer =
  6.    groups.Sum(Function(group As IGrouping(Of String, FileInfo)) group.Count) ' Cantidad total de archivos.
  7.  
  8. For Each group As IGrouping(Of String, FileInfo) In groups
  9.    Dim fileCount As Integer = group.Count ' Cantidad de archivos de este grupo.
  10.    ...
  11. Next group

Saludos!
En línea

Tomas1982

Desconectado Desconectado

Mensajes: 48



Ver Perfil
Re: Ayuda: Enumerar ficheros
« Respuesta #4 en: 14 Septiembre 2016, 21:10 pm »

Funciona perfecto lo que mediste: Como siempre resolviendo los problemas de otros. Muchas gracias... ;-)
En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: Ayuda: Enumerar ficheros
« Respuesta #5 en: 15 Septiembre 2016, 15:01 pm »

Hola

Para usar sin consola:

Código
  1.        Dim groups As IEnumerable(Of IGrouping(Of String, FileInfo)) =
  2. New DirectoryInfo(".\").EnumerateFiles("*", SearchOption.TopDirectoryOnly).
  3.                     GroupBy(Of String)(Function(file As FileInfo) file.Extension)
  4.        For Each group As IGrouping(Of String, FileInfo) In groups
  5.            Dim sb As New StringBuilder(capacity:=(group.Count * 260)) ' Suggested capacity. 260 = MAX_PATH
  6.            With sb
  7.                .AppendFormat("'{0}'", group.Key)
  8.                .AppendLine()
  9.                .AppendLine(String.Join(Environment.NewLine, group))
  10.            End With
  11.            For Each Linea As String In sb.ToString
  12.                TextBox1.Text += Linea
  13.            Next
  14.        Next group






Código
  1.  
  2.        Dim DirInfo As New DirectoryInfo(".\")
  3.        For Each Files As System.IO.FileInfo In DirInfo.GetFiles("*", SearchOption.TopDirectoryOnly)
  4.            TextBox1.Text += String.Format("{0}{1}", Files.ToString, Environment.NewLine)
  5.        Next
  6.  

S2s
« Última modificación: 15 Septiembre 2016, 15:52 pm por Lekim » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Enumerar todos los archivos
Programación Visual Basic
^_^ 5 6,876 Último mensaje 4 Septiembre 2009, 12:09 pm
por Dessa
Enumerar y configurar los PCI-s
ASM
ño_ño 0 2,953 Último mensaje 5 Febrero 2010, 20:59 pm
por ño_ño
Enumerar carpetas de una carpeta compartida
Programación Visual Basic
Psyke1 1 1,736 Último mensaje 26 Noviembre 2012, 18:57 pm
por Psyke1
Enumerar directorio por FTP (WinAPI)
Programación C/C++
mester 1 1,389 Último mensaje 9 Diciembre 2015, 19:41 pm
por mester
MOVIDO: Ayuda: Enumerar ficheros
Programación Visual Basic
Eleкtro 0 2,113 Último mensaje 14 Septiembre 2016, 17:43 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines