经常会因为重新做系统忘记备份Favorites目录中的链接,新做完系统后链接就丢失了,昨天晚上闲来就写了个很小小小的工具用于记录Favorites目录中的链接,保存在Xml文件中,并显示在TreeView中,并可打开TreeView中的链接节点。
1、当前用户的Favorites目录搜索获取链接信息
采用递归搜索,使用几个API函数就能完成,主要涉及的API函数为FindFirst、FindNext、GetPrivateProfilestring、ShGetSpecialFolderLocation、ShGetPathfromIDList等,具体使用可参照MSDN。
2、将链接信息保存在xml文件,可以将链接的信息保存在字符串中,直接保存成xml文件,注意保存的时候字符编码采用UTF8格式,否则TXMLDocument处理时会出错,默认的为Ansi,将String转换为UTF8保存即可。
<urls> <urlCategory Name="Category Name"> <urlCategory Name="Category Name"> <url Name="Url Title">urlPath(e.g. http://www.google.com)</url> … </urlCategory> <url Name="Url Title">urlPath(e.g. http://www.google.com)</url> … </urlCategory> … </urls>
3、读取xml文件显示在TreeView中,节点urlCategory为TreeView目录节点,只需获取其Name属性,url为TreeView超链接节点,需要获取Name属性及其节点的value,这里在TreeView显示的是Name属性。需要针对TTreeView进行小小的改造,针对TTreeNode定义TTreeHintNode如下。
TTreeHintNode=class(TTreeNode) public: constructor Create(AOwner: TTreeNodes); procedure Assign(Source: TPersistent); override; function GetNodeHint(Node:TTreeNode):string; procedure SetNodeHint(Node:TTreeNode;value:string); ……