使用目录中的文件名填充数据库

时间:2020-03-06 14:41:20  来源:igfitidea点击:

我有一个应用程序,它充当文件夹中所有图片的幻灯片显示。它是用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);
}