Vale, prueba esto:
Código Delphi
[-]
procedure ListFileDir(Path: string; FileList: TStrings);
var
SR: TSearchRec;
begin
if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
begin
repeat
if (SR.Attr = faDirectory) then
begin
FileList.Add(SR.Name);
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
end;
Este procedimiento te devuelve una lista de todos los subdirectorios que contiene uno dado; por ejemplo, se puede llamar de la siguiente forma:
Código Delphi
[-]
var datos : TStringList;
begin
datos := TStringList.create;
ListFileDir('c:\windows\', datos);
...
end;
y en datos tendrás una lista de todos los subdirectorios de c:\windows.
A partir de ahí, si tienes en código del usuario ya formateado a 7 caracteres (y es único) puedes encontrar el nombre completo si buscar el elemento de la lista 'datos' que empieza por éste código.
Te sirve?
Edu