Foros del Web » Programación para mayores de 30 ;) » .NET »

Obtener un numero de archivos de un IEnumerable

Estas en el tema de Obtener un numero de archivos de un IEnumerable en el foro de .NET en Foros del Web. Amigos, explico a continuación mi problema. esta función me devulve los archivos con extensiones que deseo copiar dentro de un directorio con subdirectorios, por ejem: ...
  #1 (permalink)  
Antiguo 23/05/2011, 12:37
Avatar de dauphins  
Fecha de Ingreso: diciembre-2010
Ubicación: Lima
Mensajes: 33
Antigüedad: 13 años, 11 meses
Puntos: 2
Pregunta Obtener un numero de archivos de un IEnumerable

Amigos, explico a continuación mi problema.

esta función me devulve los archivos con extensiones que deseo copiar dentro de un directorio con subdirectorios, por ejem:

Function GetFiles(ByVal root As String) As IEnumerable(Of System.IO.FileInfo)
Return From file In My.Computer.FileSystem.GetFiles(root, FileIO.SearchOption.SearchAllSubDirectories, "*.xls") _
Select New System.IO.FileInfo(file)
End Function

Luego viene el codigo de trabajo:

Dim fileList As IEnumerable(Of System.IO.FileInfo) = GetFiles(FolderOrigen)

Dim query = From file In fileList _
Group By file.Extension.ToLower() Into filegroup = Group Order By ToLower Select filegroup

Dim groupByExtList = query.ToList()

En esta seccion realizo un For Each para recorrer la lista obtenida, con respecto a subdirectorios

For Each fg As IEnumerable(Of System.IO.FileInfo) In groupByExtList
Dim currentLine As Integer = 0

Mi problema radica aqui, pues donde he puesto ese cuatro( 4 ) deberia de obtener la cantidad de archivos segune extension del directorio actual en la que me encuentro, todo me sale bien si es lo pongo de forma manual, me copia la cantidad d archivos y los subdirectorios que se encuentren, así mismo los archivos en ellos, pero necesito saber en el primer bucle como obtengo el numero de archivos de la carpeta actual

Dim resultPage = From file In fg _
Skip currentLine Take 4 --> cantidad de nros de archivos del directorio actual, según extensión inicialmente filtrada.

Realizo otro for each para recorrer y copiar archivos

For Each line In resultPage

File.Copy(line.FullName, Path.Combine(target.ToString(), line.Name))

Next

Next


' Copia cada subdirectorio
For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
CopyAll(diSourceSubDir, nextTargetSubDir)
Next

Me he demorado para realizar esto, humm inicialmente me salia porque tenia un archivo y otro solo en el sudirectorio, pero cuando aumente los archivos siempre me copiaba solo 1 de cada carpeta . Espero alguien me pueda orientar. Gracias.
__________________
"El conocimiento es para compartirlo, si no, de que te sirve?"
Dauphin

Última edición por dauphins; 23/05/2011 a las 14:34
  #2 (permalink)  
Antiguo 25/08/2011, 11:21
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 11 meses
Puntos: 22
Respuesta: Obtener un numero de archivos de un IEnumerable

Puedes hacerlo asi:

Código C#:
Ver original
  1. IEnumerable<TipoColeccion> items;
  2.  
  3. //Operaciones items.
  4.  
  5. items.Count<TipoColeccion>();

debes de asegurarte de que tengas declarado el namespace System.Linq;

Saludos

Etiquetas: linq, numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:00.