Visual Basic - Ordenar archivos

Life is soft - evento anual de software empresarial
 
Vista:

Ordenar archivos

Publicado por Asier (12 intervenciones) el 01/02/2003 16:50:24
Hola. Estoy haciendo una aplicación que renombra todos los archivos de una carpeta y les añade un número (los deja en la forma Nombre001.*, Nombre002.* ...) y resulta que los numera como le viene en gana, es decir, si hay 50 archivos, los numera del 1 al 50, pero no en el orden que les corresponde. Ejemplo: tengo una serie de fotografías que se llaman Foto 001 hasta Foto 010. Pues despues de ejecutarlo, la que antes se llamaba Foto 010, ahora puede tener el numero 1, y la que antes tenía el 2 ahora tiene el 7 y así. Total, que se pierde el orden de los archivos. ¿Porque puede ser esto? Utilizo la función Dir para recuperar los nombres, y Name para cambiarles el nombre.

Este es un trozo del código (está simplificado):

Archivo = Dir(Ruta & "\*.*", vbArchive)
While Archivo <> ""
NombreViejo = Ruta & "\" & Archivo
NombreNuevo = Ruta & "\" & Nombre.Text & Numero & ext
Name NombreViejo As NombreNuevo
Numero = Numero + 1
Archivo = Dir
Wend

Se vuelve especialmente loco cuando hay más de 10 archivos, con menos suele tespetar el órden.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordenar archivos

Publicado por Marito (57 intervenciones) el 09/02/2003 01:57:18
Seria bueno tener todo el codigo completo, para estudiar donde es el problema, es muy posible cuando se guarden los archivos, no se hagan en forma ordenada, entonces cuando los lees los lees en el orden que figuran en la tabla de entradas de directorio.
Lo que podes hacer si podes es establecer algun criterio para ordenarlos antes de renombrarlos y despues finalmente renombrarlos.

Otra cosa que te puede estar sucediendo, pero no lo se porque el codigo es muy resumido es:

si vos a un archivo lo queres llamar Nombre001 no es lo mismo que Nombre1, es lo que te esta sucediendo en este caso porque cuando renombras 20 archivos por ejemplo el orden inicial va a ser el siguiente:

Nombre1
Nombre10
Nombre2
...

porque en la tabla de valores ascii el 1 esta antes que el 2 por eso vas a tener que incluir dentro del codigo los ceros que te faltan para completar una cantidad de cifras constantes para cada numero:

Nombre001
Nombre002
...
Nombre010

de esta forma si te los va a ordenar bien.

Espero te sirva. Escribime cualquier cosa.
Salu2.
Mario






Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar