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");
}
//---------------------------------------------------------------------------
文件路径添加并保存为XML文件代码
博客给出两段代码,一段是AddPath函数,用于递归添加文件和目录路径到XML节点;另一段是FormCreate函数,创建XML文档,设置根目录,调用AddPath函数添加路径,最后将XML文档保存到指定文件。
2058

被折叠的 条评论
为什么被折叠?



