2008-09-24 53 views
0

我有一个应用程序,它可以作为文件夹中所有图片的幻灯片显示。它是用Borland的C++ Builder(9)编写的。它当前使用一些借用代码将文件名引入列表框并将列表框项目保存为文本文件。用目录中的文件名填充数据库

我想更新它,以便文件名存储在一个合适的数据库中,这样我就可以包含额外的字段并对它进行适当的SQL操作。

因此,如果我看到一些“示例”代码做同样的事情,基本上我就能解决它。

所以,如果有人知道任何代码,这样做我会很大。它需要能够在某些文件类型上执行...而不仅仅是所有文件。

回答

1

您基本上需要用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); 
} 
+0

此非常感谢。我会尝试,当我可以不幸立即没有。我会让你知道结果。 – MrVimes 2008-09-25 00:12:18