Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Octubre 04, 2012, 07:21:24 pm

Título: Mostrar archivos de un directorio pero ordenados segun fecha creacion
Publicado por: Bazooka en Octubre 04, 2012, 07:21:24 pm
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
Título: Re:Mostrar archivos de un directorio pero ordenados segun fecha creacion
Publicado por: E N T E R en Octubre 04, 2012, 09:20:28 pm

Crea una referencia de:

(http://www.mediafire.com/conv/75adab94017af9b39abecf558ad0a4ee8f1e90a3b3fd398bc3de49384b8ce9ae4g.jpg) (http://www.mediafire.com/view/?1xawo7k4qpkp34o)

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....
Título: Re:Mostrar archivos de un directorio pero ordenados segun fecha creacion
Publicado por: Bazooka en Octubre 05, 2012, 08:19:42 am
Buenisimo Ariel con un par de ajustes lo adapté no se me habia ocurrido Gracias!!!
Título: Re:Mostrar archivos de un directorio pero ordenados segun fecha creacion
Publicado por: seba123neo 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.