Заполнение базы данных именами файлов из каталогов

StackOverflow https://stackoverflow.com/questions/129919

  •  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);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top