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


 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


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

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Leer nombre de carpetas
« en: 9 Noviembre 2015, 14:50 »

Saludos amigos,

Tengo una función que lee el nombre de carpetas tomando en cuenta la selección de un mes, y las mueve a una carpeta principal.

Esta función fue desarrollada por Elektro y aquí se las comparto.

Código
  1.        Public Sub MoveDateDirectories(ByVal year As Integer,
  2.                                       ByVal month As Integer,
  3.                                       ByVal dateFormat As String,
  4.                                       ByVal sourceDir As String,
  5.                                       ByVal targetDir As String)
  6.            If (CStr(year).Length <> 4I) Then
  7.                Throw New ArgumentOutOfRangeException(paramName:="year", message:="A value of 4 digits' is required.")
  8.                'ElseIf (month < 1I) OrElse (month > 12I) Then
  9.                '    Throw New ArgumentOutOfRangeException(paramName:="month", message:="A value from range '1' to '12' is required.")
  10.                'ElseIf (dateFormat.Replace("y", "").Replace("M", "").Replace("d", "").Length <> 0) Then
  11.                '    Throw New NotImplementedException(message:="Specified date format is not implemented, only 'yyyy', 'MM' and 'dd' are interchangeable.")
  12.                'ElseIf Not Directory.Exists(sourceDir) Then
  13.                '    Throw New DirectoryNotFoundException(message:=String.Format("Source directory not found: '{0}'", targetDir))
  14.                'ElseIf Not Directory.Exists(targetDir) Then
  15.                '    Throw New DirectoryNotFoundException(message:=String.Format("Target directory not found: '{0}'", targetDir))
  16.            Else
  17.                Dim sourceDirInfo As New DirectoryInfo(sourceDir)
  18.                Dim targetDirInfo As New DirectoryInfo(targetDir)
  19.                ' Obtengo una colección con los nombres de directorio con el formato de fecha especificado. (ej. de Octubre 2015:  20151001 ... 20151031)
  20.                Dim dateDirNames As IEnumerable(Of String) =
  21.                    From day As Integer In Enumerable.Range(1, DateTime.DaysInMonth(year, month))
  22.                    Select dateFormat.Replace("yyyy", CStr(year)).
  23.                                                  Replace("MM", CStr(month).PadLeft(2, "0"c)).
  24.                                                  Replace("dd", CStr(day).PadLeft(2, "0"c))
  25.                ' Obtengo una colección con las rutas absolutas de los directorios que cumplen los requisitos.
  26.                Dim directories As IEnumerable(Of DirectoryInfo) =
  27.                    From dirInfo As DirectoryInfo In sourceDirInfo.EnumerateDirectories("*", SearchOption.TopDirectoryOnly)
  28.                    Where dateDirNames.Contains(dirInfo.Name)
  29.                ' Un simple mensaje de información o aviso cuando no se encuentra ningún directorio el cual mover.
  30.                If (Not directories.Any) Then
  31.                    Dim msg As String = String.Format("No ha sido encontrado ningún directorio en '{0}' que cumpla las condiciones de formato de fecha.", sourceDirInfo.FullName)
  32.                    MessageBox.Show(msg, " ", MessageBoxButtons.OK, MessageBoxIcon.Information)
  33.                Else
  34.                    ' Por último, muevo los directorios que cumplieron las condiciones de formato de fecha.
  35.                    For Each dirInfo As DirectoryInfo In directories
  36.                        Debug.WriteLine(String.Format("Moviendo: {0}", dirInfo.FullName))
  37.                        Try
  38.                            dirInfo.MoveTo(Path.Combine(targetDirInfo.FullName, dirInfo.Name))
  39.                        Catch ex As Exception
  40. #If DEBUG Then
  41.                            Throw
  42. #Else
  43.                        MessageBox.Show(ex.Message & Environment.NewLine & ex.StackTrace, "By Elektro", MessageBoxButtons.OK, MessageBoxIcon.Error)
  44. #End If
  45.                        End Try
  46.                    Next dirInfo
  47.                    '                MessageBox.Show("Operación finalizada.", "By Elektro", MessageBoxButtons.OK, MessageBoxIcon.Information)
  48.                End If ' Not directories.Any
  49.            End If ' dateFormat...
  50.        End Sub
  51.  


Esta trabaja perfecto sin problemas; salvo que ahora necesito adecuarla de manera que sea posible mover días, es decir, si el usuario selecciona desde el 01-12-2015 hasta el 15-12-2015 (ambos inclusive); el proceso solo mueva esos días.

Alguien podría orientarme de como adecuar esta función para que haga lo que necesito?

Desde ya mil gracias...


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #1 en: 9 Noviembre 2015, 16:48 »

Esta función fue desarrollada por Elektro y aquí se las comparto.

Que conste que agradezco cualquier mención hacia mi persona como autor de algo, sin embargo, no quiero que se me asocie con malos hábitos de programación, en el código hay una gran ausencia de indentación, ya que lo has modificado bastante, los comentarios abusivos (y en español, cosa que lo hice para el caso) y el desorden en general que hay montado en ese bloque de código xD.



Ese método está quedando excesivamente grande. Cuanto más grande o complejo sea un método más complejo será también para el compiler/intérprete (complejidad ciclomática).

Vamos a separar el trabajo en varios métodos, primero una función para obtener los directorios, segundo un overload de esa función para poder especificar un rango de días, y por último un método para mover los directorios obtenidos.

y... voilà:

Código
  1.    <DebuggerStepThrough>
  2.    Public Iterator Function SelectDirectories(ByVal sourceDir As String,
  3.                                               ByVal year As Integer,
  4.                                               ByVal month As Integer,
  5.                                               ByVal days As IEnumerable(Of Integer),
  6.                                               ByVal dateFormat As String) As IEnumerable(Of DirectoryInfo)
  7.  
  8.        If (CStr(year).Length <> 4) Then
  9.            Throw New ArgumentOutOfRangeException(paramName:="year",
  10.                                                  actualvalue:=year,
  11.                                                  message:="A value of 4 digits is required.")
  12.  
  13.        ElseIf (month < 1) OrElse (month > 12) Then
  14.            Throw New ArgumentOutOfRangeException(paramName:="month",
  15.                                                  actualvalue:=month,
  16.                                                  message:="A value from range '1' to '12' is required.")
  17.  
  18.        ElseIf (dateFormat.Replace("y", "").
  19.                           Replace("M", "").
  20.                           Replace("d", "").Length <> 0) Then
  21.  
  22.            Throw New NotImplementedException(
  23.                message:="Specified date format is not implemented, only 'yyyy', 'MM' and 'dd' are interchangeable.")
  24.  
  25.        ElseIf Not Directory.Exists(sourceDir) Then
  26.            Throw New DirectoryNotFoundException(
  27.                message:=String.Format("Source directory not found: '{0}'", sourceDir))
  28.  
  29.        End If
  30.  
  31.        Dim sourceDirInfo As New DirectoryInfo(sourceDir)
  32.  
  33.        ' Obtengo una colección con los nombres de directorio con el formato de fecha especificado.
  34.        ' (ej. de Octubre 2015:  20151001 ... 20151031)
  35.        Dim dateDirNames As IEnumerable(Of String) =
  36.            From day As Integer In days
  37.            Select dateFormat.Replace("yyyy", CStr(year)).
  38.                              Replace("MM", CStr(month).PadLeft(2, "0"c)).
  39.                              Replace("dd", CStr(day).PadLeft(2, "0"c))
  40.  
  41.        ' Itero y devuelvo una colección con las rutas absolutas de los directorios que cumplen los requisitos.
  42.        For Each dirInfo As DirectoryInfo In sourceDirInfo.EnumerateDirectories("*", SearchOption.TopDirectoryOnly)
  43.  
  44.            If dateDirNames.Contains(dirInfo.Name) Then
  45.                Yield dirInfo
  46.            End If
  47.  
  48.        Next
  49.  
  50.    End Function
  51.  
  52.    <DebuggerStepThrough>
  53.    Public Function SelectDirectories(ByVal sourceDir As String,
  54.                                      ByVal year As Integer,
  55.                                      ByVal month As Integer,
  56.                                      ByVal dateFormat As String) As IEnumerable(Of DirectoryInfo)
  57.  
  58.        Dim days As IEnumerable(Of Integer) = Enumerable.Range(1, DateTime.DaysInMonth(year, month))
  59.  
  60.        Return SelectDirectories(sourceDir, year, month, days, dateFormat)
  61.  
  62.    End Function
  63.  
  64.    <DebuggerStepThrough>
  65.    Public Sub MoveDirectories(ByVal directories As IEnumerable(Of DirectoryInfo),
  66.                               ByVal targetDir As String)
  67.  
  68.        If Not Directory.Exists(targetDir) Then
  69.            Throw New DirectoryNotFoundException(
  70.                message:=String.Format("Target directory not found: '{0}'", targetDir))
  71.  
  72.        Else
  73.            Dim trgDirInfo As New DirectoryInfo(targetDir)
  74.  
  75.            For Each srcDirInfo As DirectoryInfo In directories
  76.  
  77.                If Not Directory.Exists(srcDirInfo.FullName) Then
  78.                    Throw New DirectoryNotFoundException(
  79.                        message:=String.Format("Source directory not found: '{0}'", srcDirInfo.FullName))
  80.                Else
  81.                    Debug.WriteLine(String.Format("Moviendo: {0}", srcDirInfo.FullName))
  82.                    srcDirInfo.MoveTo(Path.Combine(trgDirInfo.FullName, srcDirInfo.Name))
  83.  
  84.                End If
  85.  
  86.            Next
  87.  
  88.        End If
  89.  
  90.    End Sub

PD: Lo he escrito al vuelo, no lo he testeado, ya no conservo la estructura de carpetas para testearlo, pero creo que no hay ninguna fisura en el código.



Ejemplo de uso:

Seleccionar las carpetas del mes entero:
Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories("C:\Directorio\", 2015, 11, "formato de fecha")

o de un rango de días (del día 1 al 15):
Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories("C:\Directorio\", 2015, 11, Enumerable.Range(1, 15), "formato de fecha")

o de ciertos dias:
Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories("C:\Directorio\", 2015, 11, {5, 3, 9, 12}, "formato de fecha")

y por último, mover los directorios:
Código
  1. MoveDirectories(directories, "C:\Destino\")

Saludos


« Última modificación: 9 Noviembre 2015, 17:24 por Eleкtro » En línea


elqueteconte

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #2 en: 9 Noviembre 2015, 17:17 »

Hola Elektro buen día;

Gracias mil por el apoyo, tendré muy presente tus recomendaciones.

Te envié por MP el avance que he adelantado con respecto a esto, con el fin de que (dentro de tus posibilidades) le direas un vistazo y me orientaras al respecto.

Estoy totalmente de acuerdo contigo, no se puede hacer un solo método que haga multiples funciones lo ideal es uno por mes y otro por semana.

Quiero tambien disculparme si he cometido alguna falta al mencionar que la función la habias hecho tu, pero me pareció poco etico y profesional que yo me atribuyera algo que no me pertenece, sería un plagio.

Desde ya mil gracias por tu constante y valioso apoyo....

Seguiremos en contacto.

En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #3 en: 9 Noviembre 2015, 17:29 »

Quiero tambien disculparme si he cometido alguna falta al mencionar que la función la habias hecho tu, pero me pareció poco etico y profesional que yo me atribuyera algo que no me pertenece, sería un plagio.

No xD, para nada, todo lo contrario, solo que el código estaba un poco ""feo"" y yo soy muy "tiquismiquis" para ciertas cosas.

Sobre lo demás, te comentaré en privado.

Saludos!
En línea


elqueteconte

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #4 en: 9 Noviembre 2015, 21:13 »

No xD, para nada, todo lo contrario, solo que el código estaba un poco ""feo"" y yo soy muy "tiquismiquis" para ciertas cosas.

Sobre lo demás, te comentaré en privado.

Saludos!

Limpiando el código como me comentas, tenemos entonces:
Código
  1.       Public Sub MoveDateDirectories(ByVal year As Integer,
  2.                                       ByVal month As Integer,
  3.                                       ByVal dateFormat As String,
  4.                                       ByVal sourceDir As String,
  5.                                       ByVal targetDir As String)
  6.            If (CStr(year).Length <> 4I) Then
  7.                Throw New ArgumentOutOfRangeException(paramName:="year", message:="A value of 4 digits' is required.")
  8.            Else
  9.                Dim sourceDirInfo As New DirectoryInfo(sourceDir)
  10.                Dim targetDirInfo As New DirectoryInfo(targetDir)
  11.                Dim dateDirNames As IEnumerable(Of String) =
  12.                    From day As Integer In Enumerable.Range(1, DateTime.DaysInMonth(year, month))
  13.                    Select dateFormat.Replace("yyyy", CStr(year)).
  14.                                                  Replace("MM", CStr(month).PadLeft(2, "0"c)).
  15.                                                  Replace("dd", CStr(day).PadLeft(2, "0"c))
  16.                Dim directories As IEnumerable(Of DirectoryInfo) =
  17.                    From dirInfo As DirectoryInfo In sourceDirInfo.EnumerateDirectories("*", SearchOption.TopDirectoryOnly)
  18.                    Where dateDirNames.Contains(dirInfo.Name)
  19.                If (Not directories.Any) Then
  20.                    Dim msg As String = String.Format("No ha sido encontrado ningún directorio en '{0}' que cumpla las condiciones de formato de fecha.", sourceDirInfo.FullName)
  21.                    MessageBox.Show(msg, " ", MessageBoxButtons.OK, MessageBoxIcon.Information)
  22.                Else
  23.                    For Each dirInfo As DirectoryInfo In directories
  24.                        Debug.WriteLine(String.Format("Moviendo: {0}", dirInfo.FullName))
  25.                        Try
  26.                            dirInfo.MoveTo(Path.Combine(targetDirInfo.FullName, dirInfo.Name))
  27.                        Catch ex As Exception
  28.                            Throw
  29.                            MessageBox.Show(ex.Message & Environment.NewLine & ex.StackTrace, "By Elektro", MessageBoxButtons.OK, MessageBoxIcon.Error)
  30.                        End Try
  31.                    Next dirInfo
  32.                    MessageBox.Show("Operación finalizada.", "By Elektro", MessageBoxButtons.OK, MessageBoxIcon.Information)
  33.                End If
  34.            End If
  35.        End Sub

Esta es la que en la actualizadad hace el movimiento de los directorios; ahora bien en mi evento Click del botón aceptar tengo:

Código
  1.    Private Sub BtAccept_Click(ByVal sender As Object, ByVal e As EventArgs) _
  2.    Handles BtAccept.Click
  3.        Dim monthNumber As Integer = Me.DTPMonth.Value.Month
  4.        Dim dateDir As String = DateUtil.GetDateDirPath("es-ES", Me.fdg.SelectedPath, Me.year, monthNumber)
  5.        ' Creo el directorio con fecha (si no existe).
  6.        DateUtil.CreateDirectory(dateDir)
  7.        If RBMonth.Checked Then
  8.            DateUtil.MoveDateDirectories(Me.year, monthNumber, DateUtil.DirNameFormat, Me.fdg.SelectedPath, dateDir)
  9.        Else [b]
  10. 'El usuario a seleccionado empaquetar solo una semana en particular aqui iria el codigo que corresponde al movimiento de las carpetas que esten dentro del rango de las indicadas por el usuario.[/b]
  11.        End If
  12.        ' Merge text files.
  13.        DateUtil.FindAndMergeFiles(Me.fdg.SelectedPath, Me.CMBComp)
  14.    End Sub
  15.  

De acuerdo a lo que me estas indicando yo debería:
1.- Quitar la función MoveDateDirectories
2.- Copiar y pegar las funciones que haz desarrollado
3.- En el If si el usuario ha solicitado hacerlo mensual colocar:
 
Código
  1.    Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories(dateDir, Me.year, monthNumber)
  2. MoveDirectories(directories, Path.Combine(targetDirInfo.FullName, dirInfo.Name))
  3.  
En caso de haber seleccionado una semana sería:
Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories(dateDir, Me.year, monthNumber,Enumerable.Range(1, 15))
  2. MoveDirectories(directories, Path.Combine(targetDirInfo.FullName, dirInfo.Name))
  3.  

Es así como lo entiendo.

Desde ya gracias....!
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #5 en: 9 Noviembre 2015, 21:27 »

Lo has entendido todo a la perfección y lo has sabido adaptar al código sin aydua :).

Solo que, aquí, no se si lo has entendido del todo, yo creo que deberías averiguar el día/semana que haya seleccionado en tu control DateTimePicker, y usarlo en el rango, por que esta función lo que hace es devolver un rango de valores desde X hasta Y: Enumerable.Range(desde_primer_dia_X, hasta_último_dia_Y):

Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories(dateDir, Me.year, monthNumber, Enumerable.Range(1, semana))

Si solo quieres seleccionar la primera semana, deberías utilizarlo así Enumerable.Range(1, 7)

Auqnue bueno, eso es como tú lo quieras hacer.

Saludos!
« Última modificación: 9 Noviembre 2015, 21:34 por Eleкtro » En línea


elqueteconte

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #6 en: 9 Noviembre 2015, 21:48 »

Lo has entendido todo a la perfección y lo has sabido adaptar al código sin aydua :).

Solo que, aquí, no se si lo has entendido del todo, yo creo que deberías averiguar el día/semana que haya seleccionado en tu control DateTimePicker, y usarlo en el rango, por que esta función lo que hace es devolver un rango de valores desde X hasta Y: Enumerable.Range(desde_primer_dia_X, hasta_último_dia_Y):

Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories(dateDir, Me.year, monthNumber, Enumerable.Range(1, semana))



Aunque bueno, eso es como tú lo quieras hacer.

Saludos!

Gracias, gracias, gracias jejejejeje

No entendí lo ultimo, acerca de la función de los días; la idea es que el usuario coloque al menos 2 días, es decir, desde el 01 al 02, pero no va a poder seleccionar varios días salteado por ejemplo, 01, 03, 05 y 09. En este caso sería como seleccionar entre el 01 y el 09.

So, siempre habrá un rango que será igual o mayor a dos días y menor al ultimo día del mes. La fecha desde no puede ser posterior a la fecha hasta y la fecha hasta no puede ser inferior a la fecha desde, estas son reglas que se colocarán en la validación del campo con el evento onChange.

En este caso te pregunto como sería la función Enumerable.Range ?

Otra cosa:
Al función SelectDirectories espera 4 parámetros y en el llamaddo yo le estoy colocando solo 3, me falta el dateFormat, de donde lo saco?

Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = DateUtil.SelectDirectories(dateDir, Me.year, monthNumber, ME FALTA ESTE PARÁMETRO)
  2.  

De nuevo gracias mil.
« Última modificación: 9 Noviembre 2015, 22:09 por elqueteconte » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #7 en: 9 Noviembre 2015, 22:13 »

desde el 01 al 02

entre el 01 y el 09.

siempre habrá un rango

En este caso te pregunto como sería la función Enumerable.Range ?

Código
  1. Enumerable.Range(inicio, fin)
Código
  1. Enumerable.Range(1, 2)
Código
  1. Enumerable.Range(1, 9)



Otra cosa:
Al función SelectDirectories espera 4 parámetros y en el llamaddo yo le estoy colocando solo 3, me falta el dateFormat, de donde lo saco?

Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = DateUtil.SelectDirectories(dateDir, Me.year, monthNumber, ME FALTA ESTE PARÁMETRO)
  2.  


El método original que estaba sutilizando era este:
Código
  1. Public Sub MoveDateDirectories(ByVal year As Integer,
  2.                                       ByVal month As Integer,
  3.                                       ByVal dateFormat As String,
  4.                                       ByVal sourceDir As String,
  5.                                       ByVal targetDir As String)

Revisa en el código fuente que valor le estabas enviando al parámetro dateFormat de ese método. Usa el mismo valor al llamar a esta nueva función. No recuerdo el formato, está escrito en tu código fuente y también en alguna de las páginas de tus preguntas anteriores, era un string más o menos así "MM-dd-YYYY".

Saludos
« Última modificación: 9 Noviembre 2015, 22:15 por Eleкtro » En línea


elqueteconte

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #8 en: 9 Noviembre 2015, 22:53 »

Saludos;

1.-  
Código
  1. Enumerable.Range(inicio, fin)

Donde inicio y fin son el valor del DateTmePiker que seleccionó el usuario.

Sería algo como:
Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories(dateDir, Me.year, monthNumber, Enumerable.Range(Me.DTPSince.Value, Me.DTPUntil.Value))
  2.  

Pero dado que el valor que espera el método Enumerable es un entero y el valor que tiene el objeto DTPSince es un string hay que hacer la conversión, que inicialmente sería con esto:

Código
  1. Convert.ToInt32(DTPUntil.Value.ToString("yyyyMMdd"))

Es esto correcto?

Así quedaría la definición de la variable:
Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories(dateDir, Me.year, monthNumber, Enumerable.Range(Convert.ToInt32(DTPSince.Value.ToString("yyyyMMdd")), Convert.ToInt32(DTPUntil.Value.ToString("yyyyMMdd"))))
  2.  

2.- La definición de la variable sería entonces asi:
Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = DateUtil.SelectDirectories(dateDir, Me.year, monthNumber, DateUtil.DirNameFormat)


Como quedaría el llamado al metodo?

Pues he intentado con la variable targetDirInfo y dirInfo pero  me está dando error de no declarado o inaccesible.

Gracias!
« Última modificación: 10 Noviembre 2015, 16:12 por elqueteconte » En línea

elqueteconte

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Leer nombre de carpetas
« Respuesta #9 en: 12 Noviembre 2015, 17:28 »

Saludos,

Me puse a estudiar el metodo Enumerable.Range y me día cuenta que lo que decía antes era un soberano disparate pues el range utiliza el valor del día de la fecha inicial (para mi caso especíifico) y el segundo valor es la cantida de días; es decir; que si la fecha de inicio es 01-11-2015 y la fecha fin es 12-11-2015; entonces el primero valor será el 1 y el segundo valor será el 11.

Esto significa que debo sacar una operación matematica pra calcular la diferencia.

Código
  1. Dim InitialDate As Date = DTPSince.Value
  2. Dim FinalDate As Date = DTPUntil.Value
  3. Dim tspan As TimeSpan
  4. Dim differenceInDays As Integer
  5. tspan = InitialDate - FinalDate
  6. differenceInDays = tspan.Days
  7.  

Una vez obtenido esto la definición de la variable directories sería:
Código
  1. Dim directories As IEnumerable(Of DirectoryInfo) = SelectDirectories(dateDir, Me.year, monthNumber, Enumerable.Range(InitialDate.Day, differenceInDays))
  2.  

Pero me sigue dando error de IEnumerable (Of Integer) to String.

Que estoy haciendo mal? :-\
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON BAT, LEER NOMBRE DE ARCHIVO...
Scripting
elecktra 3 1,755 Último mensaje 28 Noviembre 2008, 00:56
por Darioxhcx
Eliminar carpetas segun su nombre BATCH
Scripting
Fabiang 1 3,344 Último mensaje 16 Julio 2010, 20:34
por Fabiang
Leer archivo con nombre variable
Scripting
Jonha000 3 2,199 Último mensaje 10 Agosto 2010, 15:42
por EddyW
Script copiar carpetas y cambiar de nombre
Scripting
espantaburros 0 1,195 Último mensaje 22 Junio 2014, 21:13
por espantaburros
Leer carpetas y sub carpetas C# unity
Programación C/C++
aspiazu 0 782 Último mensaje 5 Abril 2017, 22:01
por aspiazu
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines