Popolamento di un database con nomi di file dalle directory
-
02-07-2019 - |
Domanda
Ho un'applicazione che si comporta come una presentazione per tutte le immagini in una cartella. È scritto in Borland's C ++ Builder (9). Attualmente utilizza un codice preso in prestito per gettare i nomi dei file in una casella di riepilogo e salvare gli elementi della casella di riepilogo come file di testo.
Voglio aggiornare questo in modo che i nomi dei file siano memorizzati in un database adeguato in modo da poter includere campi extra e fare cose SQL appropriate con esso.
Quindi, fondamentalmente, sarei in grado di risolverlo se vedessi un codice 'sample' fare la stessa cosa.
Quindi, se qualcuno fosse a conoscenza di un codice che lo fa, sarei grato. Deve essere in grado di farlo su determinati tipi di file ... non solo su tutti i file.
Soluzione
Fondamentalmente devi scrivere una funzione ricorsiva con un parametro TDataSet.
(Non ho potuto compilare il mio codice, quindi lo ottieni " come è ")
void AddFiles(AnsiString path, TDataSet *DataSet)
{
TSearchRec sr;
int f;
f = FindFirst(path+"\\*.*", faAnyFile, sr);
while( !f )
{
if(sr.Attr & faDirectory)
{
if(sr.Name != "." && sr.Name != "..")
{
path.sprintf("%s%s%s", path, "\\", sr.Name);
AddFiles(path, DataSet);
}
}
else
{
DataSet->Append();
DataSet->FieldByName("Name")->Value = sr.Name;
/* other fields ... */
DataSet->Post();
}
f = FindNext(sr);
}
FindClose(sr);
}