Autor
|
Tema: Ayuda: Enumerar ficheros (Leído 2,588 veces)
|
Tomas1982
Desconectado
Mensajes: 48
|
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 FolderBrowserDialog1.ShowDialog() TextBox1.Text = FolderBrowserDialog1.SelectedPath Dim dirpath As String = FolderBrowserDialog1.SelectedPath filepaths = Directory.GetFiles(dirpath, "*", SearchOption.AllDirectories) Me.ListBox1.DataSource = filepaths Me.Text = ListBox1.Items.Count.ToString() & ".Archivos"
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Puedes agrupar los archivos por su extensión de archivo utilizando el método Enumerable.GroupBy() de LINQ. Te escribo un ejemplo: Dim groups As IEnumerable(Of IGrouping(Of String, FileInfo)) = New DirectoryInfo(".\").EnumerateFiles("*", SearchOption.TopDirectoryOnly). GroupBy(Of String)(Function(file As FileInfo ) file. Extension) For Each group As IGrouping(Of String, FileInfo) In groups Dim sb As New StringBuilder(capacity:=(group.Count * 260)) ' Suggested capacity. 260 = MAX_PATH With sb .AppendFormat("Group of file extension '{0}'", group.Key) .AppendLine() .AppendLine(String.Join(Environment.NewLine, group)) End With Console.WriteLine(sb.ToString()) Next group
Resultado de ejecución: 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
Mensajes: 48
|
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
Mensajes: 9.878
|
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: Dim groups As IEnumerable(Of IGrouping(Of String, FileInfo)) = New DirectoryInfo(".\").EnumerateFiles("*", SearchOption.TopDirectoryOnly). GroupBy(Of String)(Function(file As FileInfo ) file. Extension) Dim totalFileCount As Integer = groups.Sum(Function(group As IGrouping(Of String, FileInfo)) group.Count) ' Cantidad total de archivos. For Each group As IGrouping(Of String, FileInfo) In groups Dim fileCount As Integer = group.Count ' Cantidad de archivos de este grupo. ... Next group
Saludos!
|
|
|
En línea
|
|
|
|
Tomas1982
Desconectado
Mensajes: 48
|
Funciona perfecto lo que mediste: Como siempre resolviendo los problemas de otros. Muchas gracias...
|
|
|
En línea
|
|
|
|
Lekim
Desconectado
Mensajes: 268
|
Hola Para usar sin consola: Dim groups As IEnumerable(Of IGrouping(Of String, FileInfo)) = New DirectoryInfo(".\").EnumerateFiles("*", SearchOption.TopDirectoryOnly). GroupBy(Of String)(Function(file As FileInfo ) file. Extension) For Each group As IGrouping(Of String, FileInfo) In groups Dim sb As New StringBuilder(capacity:=(group.Count * 260)) ' Suggested capacity. 260 = MAX_PATH With sb .AppendFormat("'{0}'", group.Key) .AppendLine() .AppendLine(String.Join(Environment.NewLine, group)) End With For Each Linea As String In sb.ToString TextBox1.Text += Linea Next Next group
Dim DirInfo As New DirectoryInfo(".\") For Each Files As System. IO. FileInfo In DirInfo. GetFiles("*", SearchOption. TopDirectoryOnly) TextBox1. Text += String. Format("{0}{1}", Files. ToString, Environment. NewLine) Next
S2s
|
|
« Última modificación: 15 Septiembre 2016, 15:52 pm por Lekim »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Enumerar todos los archivos
Programación Visual Basic
|
^_^
|
5
|
7,070
|
4 Septiembre 2009, 12:09 pm
por Dessa
|
|
|
Enumerar y configurar los PCI-s
ASM
|
ño_ño
|
0
|
3,065
|
5 Febrero 2010, 20:59 pm
por ño_ño
|
|
|
Enumerar carpetas de una carpeta compartida
Programación Visual Basic
|
Psyke1
|
1
|
1,886
|
26 Noviembre 2012, 18:57 pm
por Psyke1
|
|
|
Enumerar directorio por FTP (WinAPI)
Programación C/C++
|
mester
|
1
|
1,637
|
9 Diciembre 2015, 19:41 pm
por mester
|
|
|
MOVIDO: Ayuda: Enumerar ficheros
Programación Visual Basic
|
Eleкtro
|
0
|
2,213
|
14 Septiembre 2016, 17:43 pm
por Eleкtro
|
|