Buenas!
Pues estoy liado con un problema que me lleva un par de días y no le veo solución (debe de ser de esas cosas que tienes delante de tus narices pero no salen hasta que les da la gana).
La cosa es que tengo una lista de ficheros que tienen todos un path común inicial (digamos "/BACKUP/"). Como por ejemplo:
/BACKUP/uno/fichero.dat
/BACKUP/uno/fichero2.dat
/BACKUP/dos/fichero.dat
/BACKUP/dos/tres/fichero.dat
/BACKUP/cuatro/cinco/fichero.dat
Quería hacer una lista con todos los directorios en forma de arbol, con una estructura tal que el directorio hijo apunte al padre.
La estructura en la quería meter los datos es algo así:
Código Delphi
[-]
type
Tdirectorio = record
nombre:widestring;
directorio_padre:longword; nombre:widestring;
end;
var
tabla_directorios:array of tdirectorio;
num_tabla_directorios:longword;
El primer registro del array "tabla_directorios" es el raiz o el directorio común báse.
La cosa es que me estoy comiendo la cabeza para teniendo los nombres y rutas de los ficheros, como recorrerlos para que se almacenen los directorios en la estructura.
No se si me explico bien, es como hacer esto con la lista de los ficheros que he puesto de ejemplo arriba (aunque esto es manualmente y no automáticamente):
Código Delphi
[-]
tabla_directorios[0].nombre:='';
tabla_directorios[0].directorio_padre:=0;
tabla_directorios[1].nombre:='BACKUP';
tabla_directorios[1].directorio_padre:=0;
tabla_directorios[2].nombre:='uno';
tabla_directorios[2].directorio_padre:=1;
tabla_directorios[3].nombre:='dos';
tabla_directorios[3].directorio_padre:=1;
tabla_directorios[4].nombre:='tres';
tabla_directorios[4].directorio_padre:=3;
tabla_directorios[5].nombre:='cuatro';
tabla_directorios[5].directorio_padre:=1;
tabla_directorios[6].nombre:='cinco';
tabla_directorios[6].directorio_padre:=5;
Si alguien sabe como hacerlo, por favor, podéis ayudarme?, gracias.