C++ 使用目录中的文件名填充数据库
我有一个应用程序,它可以像幻灯片一样显示文件夹中的所有图片。它是用Borland的C++ Builder(9)编写的。它目前使用一些借用的代码将文件名抛出到列表框中,并将列表框项目保存为文本文件 我想更新它,以便将文件名存储在适当的数据库中,这样我就可以包含额外的字段,并使用它执行适当的SQL操作 所以基本上,如果我看到一些“示例”代码做同样的事情,我就能够解决这个问题C++ 使用目录中的文件名填充数据库,c++,sql,c++builder,C++,Sql,C++builder,我有一个应用程序,它可以像幻灯片一样显示文件夹中的所有图片。它是用Borland的C++ Builder(9)编写的。它目前使用一些借用的代码将文件名抛出到列表框中,并将列表框项目保存为文本文件 我想更新它,以便将文件名存储在适当的数据库中,这样我就可以包含额外的字段,并使用它执行适当的SQL操作 所以基本上,如果我看到一些“示例”代码做同样的事情,我就能够解决这个问题 因此,如果有人知道任何代码可以做到这一点,我将不胜感激。它需要能够在某些文件类型上执行此操作。。。不仅仅是所有的文件。您基本上
因此,如果有人知道任何代码可以做到这一点,我将不胜感激。它需要能够在某些文件类型上执行此操作。。。不仅仅是所有的文件。您基本上需要编写一个带有TDataSet参数的递归函数 (我无法编译我的代码,所以您可以按原样编译)
非常感谢。我会在可能的时候尝试一下,但不幸的是,这不是立即的。我会让你知道结果的。我开始测试这段代码(虽然没有数据集的东西——只是测试在一个dir和它的subdirs中获取所有文件),但它不能正常工作。它弄乱了道路。。。真实结构a\b a\c a\d变成a\b a\b\c(它错误地将'a'的子目录变成'b'的子目录
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);
}