c# 获取收藏夹目录到树型控件
private void ReportForm_Load(object sender, EventArgs e)
{
DirectoryInfo favfolder = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Favorites));
FileSystemInfo[] myFileSystemInfo = favfolder.GetFileSystemInfos();
TreeNode RootNode = new TreeNode();
RootNode.Text = "收藏夹";
this.treeView1.Nodes.Add(RootNode);
this.treeView1.ExpandAll();
GetDir(myFileSystemInfo, RootNode);
}
private void GetDir(FileSystemInfo[] myFavDir, TreeNode RootNode)
{
string myStr = "";
string myUrl = "";
string myDesc = "";
if (myFavDir == null)
{
throw new ArgumentNullException("myfavdir");
}
foreach (FileSystemInfo filesysteminfo in myFavDir)
{
TreeNode tn = new TreeNode();
//文件目录
if (filesysteminfo.GetType() == typeof(DirectoryInfo))
{
tn.Text = filesysteminfo.Name;
RootNode.Nodes.Add(tn);
//强制转化为文件目录格式
DirectoryInfo childfile = (DirectoryInfo)filesysteminfo;
//递归调用
GetDir(childfile.GetFileSystemInfos(), tn);
}
//文件格式
else if (filesysteminfo.GetType() == typeof(FileInfo))
{
string fitler = ".url";
//过滤功能
if (filesysteminfo.FullName.ToLower().EndsWith(fitler.ToLower()))
{
using (StreamReader sr = new StreamReader(filesysteminfo.FullName, Encoding.Default))
{
myStr = sr.ReadLine();
while (myStr != null)
{
//获取URL地址
if (myStr.ToLower().StartsWith(URLPrefix))
{
myUrl = myStr.Substring(URLPrefix.Length);
}
else if (myStr.ToLower().StartsWith(DescriptionPrefix))
{
myDesc = myStr.Substring(DescriptionPrefix.Length);
}
myStr = sr.ReadLine();
}
}
TreeNode tnchild = new TreeNode();
tnchild.Text = filesysteminfo.Name;
tnchild.Tag = myUrl;
RootNode.Nodes.Add(tnchild);
}
}
}
}