Obtener el id del ultimo directorio creado

Iniciado por WHK, 12 Octubre 2009, 21:16 PM

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

WHK

Hola, estoy haciendo un programa que guarda imagenes a un directorio, este directorio tiene un grupo de imagenes en directorios ordenados de forma numérica, por ejemplo:
imagenes/grupo1
imagenes/grupo2
imagenes/grupo3
imagenes/grupo4
etc..

el problema es que como puedo saber cual directorio corresponde después del último creado sabiendo que alguien puede modificar el nombre de algún directorio por x motivo imposibilitando utilizar las propiedades nativas de creación del directorio y evitando que el directorio 10 quede primero que el 1 y sabiendo que pueden haber directorios eliminados por lo tanto puede haber directorio 2, directorio 5, etc.

Como podría hacerlo?

Ya obtube todos los directorios de la ruta con una función que hize:

Archivos.bas
Código (vb) [Seleccionar]
Public Function Obtener_Directorios(Ruta As String) As Variant
Dim Directorio As String
On Error Resume Next
Directorio = Dir(Ruta, vbDirectory)
While Directorio <> ""
 Directorio = Dir
 If Is_Dir(Ruta & Directorio) Then
  Obtener_Directorios = Obtener_Directorios & Directorio & ","
 End If
Wend
Obtener_Directorios = Split(Obtener_Directorios, ",")
End Function


Pero ahora no se como ordenarlos de forma alfabetica y numérica  :P

BlackZeroX

#1
Para el ordenado puedes usar Bubble Sort:

Este codigo es sacado del ListboxEx de Leandro Ascierto, te lo pongo por su sencilles (Es Relentisimo con muchos datos a ordenar pero se comprende bien).

Código (vb) [Seleccionar]

Public Enum EnuListOrder
   AcendetOrder = 0
   DecendentOrder = 1
End Enum

Public Sub Sorted(Order As EnuListOrder)
    Dim Itm as string
   Dim J As Long
   Dim i As Long

   If Order = AcendetOrder Then
       For J = 0 To mCount - 2
           For i = 0 To mCount - 2
               If Item(i) > Item(i + 1) Then
                   Itm = Item(i + 1)
                   Item(i + 1) = Item(i)
                   Item(i) = Itm
               End If
           Next i
       Next J
   Else
       For J = 0 To mCount - 2
           For i = 0 To mCount - 2
               If Item(i) < Item(i + 1) Then
                   Itm = Item(i + 1)
                   Item(i + 1) = Item(i)
                   Item(i) = Itm
               End If
           Next i
       Next J
   End If

End Sub


Dulces Lunas!¡.
The Dark Shadow is my passion.

WHK

XDDDD al principio serán unas 100 o 200 imagenes por sesión de fotos, después quedarán almacenados y serán miles xDD

gracias de todas formas

seba123neo

Hola y si usas la fecha de creacion del directorio y asi ordenarlos segun la fecha ¿ te sirve ?

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson