У меня есть приложение, которое ведет себя как слайд-шоу для всех изображений в папке. Он написан на Borland C++ Builder (9). В настоящее время он использует некоторый заимствованный код, чтобы поместить имена файлов в список и сохранить элементы списка в виде текстового файла.
Я хочу обновить это, чтобы имена файлов хранились в правильной базе данных, чтобы я мог включать дополнительные поля и выполнять с ними правильные операции 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);
}
Я начал тестировать этот код (хотя и без набора данных - просто чтобы проверить получение всех файлов в каталоге и его подкаталогах), и он не работает должным образом. Это путает пути ... реальная структура a a \ b a \ c a \ d становится a a \ b a \ b \ c (она неправильно превращает подкаталог 'a' в подкаталог 'b'
Большое спасибо за это. Я попробую, когда смогу, что, к сожалению, не сразу. Я дам вам знать результат.