Auffüllen einer Datenbank mit Dateinamen von Verzeichnissen
-
02-07-2019 - |
Frage
Ich habe eine Anwendung, die für alle Bilder in einem Ordner als Diashow verhält. Es wird in Borland C ++ Builder (9) geschrieben. Es nutzt derzeit einige geliehenen Code die Dateinamen in einem Listenfeld zu werfen und die Listbox Elemente als Textdatei speichern.
Ich mag diese aktualisieren, damit die Dateinamen in einer geeigneten Datenbank gespeichert werden, so dass ich zusätzliche Felder umfassen kann und damit die richtigen SQL Dinge tun.
Also im Grunde würde ich in der Lage sein, es zu trainieren, wenn ich einig ‚Probe‘ Code sehe das gleiche tun.
Wenn also jemand von Code weiß, das dies tut ich dankbar sein würde. Es muss in der Lage sein auf bestimmte Dateitypen zu tun ... nicht nur alle Dateien.
Lösung
Sie neeed im Grunde eine rekursive Funktion mit einem TDataSet Parameter zu schreiben.
(ich konnte meinen Code nicht kompilieren, so dass Sie bekommen es "as is")
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);
}