Hola a todos.
Estoy empezando a programar con C++ Builder 6 y me gustaría hacer una pequeña aplicación en la que se seleccione una carpeta del disco duro y recupere todos los nombres de ficheros de esa carpeta( o sea todo lo que hay en ella,incluyendo carpetas,ficheros, películas, etc.).
La idea es copiar todos esos nombres de ficheros en un .txt.
Esta es la función para recorrer el disco duro y seleccionar una carpeta:
void __fastcall TfrmMain::BuscarClick(TObject *Sender)
{
String ruta_f;
AnsiString Directory = "F:\\";
SelectDirectory(Directory, TSelectDirOpts(), 0);
Memo1->Text = Directory; //Guarda la ruta a memo1
ruta_f=Memo1->Text; //La muestro en Memo1
}
Con ésta función pretendo comprobar si funciona el FindFirst, que si no me equivoco busca el primer fichero(según unos atributos) en la ruta indicada,recuperando entre otras cosas el nombre del fichero.
void __fastcall TfrmMain::CrearClick(TObject *Sender)
{
String ruta_f;
TSearchRec sr;
ruta_f=Memo1->Text; //Recojo la ruta del directorio selecionado
if (FindFirst(ruta_f,faAnyFile,sr)==0) //Si en este directorio existen ficheros de
//tipo "faAnyFile"
Memo2->Text = sr.Name;// mostrar en el memo2 el nombre del primer fichero
//encontrado
}
Bueno pues aqui es donde falla el tema,en la Memo2 me muestra el nombre de la carpeta que seleccione previamente.Si seleccione la ruta C:\Peliculas\Accion ,
me muestra el nombre "Accion".Lo que pretendo es que me muestre el nombre del primer fichero(por ejemplo: "Conan_el_barbaro.avi".Luego ya me encargare de meter un bucle para recuperar todos los nombres de la carpeta etc.
Como dije soy nuevo en C++Builder y no consigo dar con el problema,muchas gracias.