Autor Tema: Mostrar archivos de un directorio pero ordenados segun fecha creacion  (Leído 5183 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Hola amigos hace mucho no andaba por estos pagos..
Esta vez necesito una ayudita por que tengo un proc. que carga los archivos txt de un directorio pero me los carga de cualquier manera y yo necesito que se respete la fecha de creación del archivo  o sea que los mas nuevos me los va mostrando arriba.

Este es el proc. que utilizo :

Código: [Seleccionar]
Private Sub MostrarFiles()
Dim archivo As String

archivo = Dir(App.Path & "\archivos\*.txt")
List1.Clear

While archivo <> ""
        i = i + 1
        List1.AddItem archivo
        archivo = Dir
Wend

End Sub

Gracias por su ayuda
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Mostrar archivos de un directorio pero ordenados segun fecha creacion
« Respuesta #1 en: Octubre 04, 2012, 09:20:28 pm »

Crea una referencia de:



Inserta en el form : 1 Dir1, 1 ListBox y un Command1

Código: (VB) [Seleccionar]
Private Sub Command1_Click()

    Dim lt      As ListItem
    Dim file    As String
    Dim fs      As Object, fl As Object
    Dim items   As Long
    Dim fls()   As file
    Dim i       As Long, j As Long
    Dim a       As Variant, b As Variant
   
    On Local Error Resume Next
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    List1.Clear
   
    file = Dir(App.Path & "\archivos\*.txt")
   
    Do Until file = ""
        Set fl = fs.GetFile(Me.Dir1 + "\" + file)
        items = items + 1
        ReDim Preserve fls(1 To items)
        Set fls(items) = fs.GetFile(Me.Dir1 + "\" + file)
        file = Dir()
    Loop
   
    For i = 1 To items - 1
        For j = i + 1 To items
            If fls(i).DateLastModified > fls(j).DateLastModified Then
                Set a = fls(i)
                Set fls(i) = fls(j)
                Set fls(j) = a
            End If
        Next j
    Next i
       
    For i = 1 To items
        List1.AddItem fls(i).DateCreated
    Next i

'----------------------------------------------------------------------
'    Esto es si queres en un ListView mas bien detallado.             '
'----------------------------------------------------------------------
'    For i = 1 To items
'        Set lt = ListView1.ListItems.Add(, , fls(i).Name)
'        lt.SubItems(1) = fls(i).DateCreated
'        lt.SubItems(2) = CStr(fls(i).Size)
'        lt.SubItems(3) = fls(i).Type
'    Next i
   
End Sub

Ojala te sirva amigo.

Saludos....
« última modificación: Octubre 04, 2012, 09:27:16 pm por E N T E R »
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Mostrar archivos de un directorio pero ordenados segun fecha creacion
« Respuesta #2 en: Octubre 05, 2012, 08:19:42 am »
Buenisimo Ariel con un par de ajustes lo adapté no se me habia ocurrido Gracias!!!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Mostrar archivos de un directorio pero ordenados segun fecha creacion
« Respuesta #3 en: Octubre 05, 2012, 09:45:52 am »
tambien podes usar apis, es mas codigo, pero es mas rapido si tenes miles de archivos.

saludos.