respondiendo a última hora...
disculpa la demora, es que estaba de viaje... ahora es que venga a sentarme en la PC... y te voy a mandar la función de buscar los archivos implementada en C,
void SearchFiles(AnsiString Path, TStringList &vList, bool iFolders, bool all)
{
AnsiString p, fn;
int attr;
TSearchRec fs;
if (Trim(ExtractFileName(Path)) == "*.*") fn = "*.*"; else fn = Trim(ExtractFileName(Path));
p = ExtractFilePath(Path);
/*Buscamos los ficheros*/
attr = faArchive;
if (FindFirst(p + fn, attr, fs) == 0)
vList.Add(p + fs.Name);
while (FindNext(fs) == 0)
vList.Add(p + fs.Name);
/*Buscamos las carpetas, si se ha especificado*/
if (iFolders)
{
attr = faDirectory;
if (FindFirst(p + "\*..", attr, fs) == 0)
{
if (!all) vList.Add(p + fs.Name);
if ((fs.Name != ".") && (fs.Name != "..") && (all))
SearchFiles(p + fs.Name, vList, iFolders, all);
}
while (FindNext(fs) == 0)
{
if (!all) vList.Add(p + fs.Name);
if ((fs.Name != ".") && (fs.Name != "..") && (all))
SearchFiles(p + fs.Name + "\\" + fn, vList, iFolders, all);
}
}
FindClose(fs);
}
ahora, un ejemplo de llamada en un evento cualquiera:
TStringList *vLista = new TStringList();
SearchFiles("C:\\UsrMan\\*.*", *vLista, true, false);
Memo1->Text = vLista->Text;
espero que te sirva de algo aunque sea un poco demorada mi respuesta,
salu2!!!
|