遍历该文件夹下的所有文件并生成xml树

void AddPath(AnsiString Path, _di_IXMLNode node)
{
     AnsiString FilePath=Path+"//*.*";
     TSearchRec sr;
     sr.Name=FilePath;
     int done;
     done = FindFirst(FilePath,faAnyFile,sr);
     AnsiString FileName;
     while (!done)      {
          FileName=Path+"//"+sr.Name;
          FileSetAttr(FileName,0);
          if(sr.Attr & faDirectory&&sr.Name[1]!='.') {
              _di_IXMLNode ix = node->AddChild("dir");
              ix->Attributes["id"] =  "id";
              ix->Attributes["name"] = sr.Name;
              ix->Attributes["path"] = Path;
              AddPath(FileName, ix);
          }
          else {
              _di_IXMLNode ix = node->AddChild("file");
              ix->Attributes["id"] =  "id";
              ix->Attributes["name"] = sr.Name;
              ix->Attributes["path"] = Path;
              ix->Attributes["type"] = "type";
          }

          done = FindNext(sr);
     }
     FindClose(sr);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  _di_IXMLDocument X = NewXMLDocument();
  AnsiString  rootpath = "D://Temp";
  X->Active = true;
  _di_IXMLNode ix = X->AddChild("dir");
  ix->Attributes["id"] =  "";
  ix->Attributes["name"] = ExtractFileName(rootpath);
  ix->Attributes["path"] = ExtractFilePath(rootpath);
  AddPath(rootpath, ix);
  X->SaveToFile("d://temp//files.xml");
}
//---------------------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值