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.