Puedes usar componentes del tipo TreeView, FileListBox de la paleta de Win 3.1, ShellTreeView de la paleta Samples, etc. Para poder listar los ficheros de un directorio.
Te doy un ejemplo con el FileListBox:
Código Delphi
[-]
FileListBox1.Mask := '*.TEXT'; FileListBox1.Directory := 'c:\TXT\'; FileListBox1.Update;
Ya sólo te queda recorrer el FileListBox accediendo a sus items
Código Delphi
[-]FileListBox1.Items.Strings[x]
y para cada fichero encontrado lo subes con la función Put que te enseñé más arriba.
Saludos