Заполнение базы данных именами файлов из каталогов
-
02-07-2019 - |
Вопрос
У меня есть приложение, которое ведет себя как слайд-шоу для всех изображений в папке.Он написан в Borland's C++ Builder (9).В настоящее время он использует некоторый заимствованный код, чтобы поместить имена файлов в listbox и сохранить элементы listbox в виде текстового файла.
Я хочу обновить это, чтобы имена файлов хранились в соответствующей базе данных, чтобы я мог включать дополнительные поля и выполнять с ними соответствующие действия SQL.
Так что, в принципе, я смог бы разобраться с этим, если бы увидел какой-нибудь "примерный" код, делающий то же самое.
Так что, если кто-нибудь знает какой-либо код, который делает это, я был бы очень признателен.Он должен быть способен делать это с определенными типами файлов...не только все файлы.
Решение
По сути, вам нужно написать рекурсивную функцию с параметром TDataSet.
(Я не смог скомпилировать свой код, поэтому вы получаете его "как есть")
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);
}