获取浏览器收藏夹的标签

获取浏览器的收藏夹 标签列表 并展示

 

winform程序:包含空间:menuStrip控件

界面如下:

 

代码:

 

 

        //获取收藏夹路径  
        string favorfolder = Environment.GetFolderPath(Environment.SpecialFolder.Favorites);//获取系统收藏夹路径  

        public Form1()
        {
            InitializeComponent();
            ListMenuItem(收藏夹ToolStripMenuItem2, new DirectoryInfo(favorfolder));
        }

        private List<FileInfo> mUrlFileList = new List<FileInfo>();

        /// <summary>
        /// 加载标签至menuStrip控件
        /// </summary>
        /// <param name="toolstripmenuitem">ToolStripMenuItem即menuStrip控件的下级菜单控件</param>
        /// <param name="info">收藏夹路径</param>
        public void ListMenuItem(ToolStripMenuItem toolstripmenuitem, FileSystemInfo info)             //生成收藏夹菜单的函数,递归使用  
        {
            if (!info.Exists) return;
            DirectoryInfo dir = info as DirectoryInfo;
            //不是目录   
            if (dir == null) return;

            FileSystemInfo[] files = dir.GetFileSystemInfos();
            ToolStripMenuItem[] ShouCangsMenuItem = new ToolStripMenuItem[files.Length];
            for (int i = 0; i < files.Length; i++)
            {

                FileInfo file = files[i] as FileInfo;
                ShouCangsMenuItem[i] = new System.Windows.Forms.ToolStripMenuItem();

                //是文件   
                if (file != null)
                {
                    if (file.Extension == ".url")
                    {
                        mUrlFileList.Add(file);
                        // ShouCangsMenuItem[i].Image = global::MyWebBrowser2010.Properties.Resources.ie1;//菜单项图片  
                        string str = file.Name;             //获取收藏夹的文件名(都是URL文件)  
                        str = str.Remove(str.Length - 4);     //去掉.url后缀名  

                        ShouCangsMenuItem[i].Text = str;          //然后赋值给菜单文本  

                        List<string> src = new List<string>();

                        try
                        {
                            StreamReader sr = file.OpenText();//获取文件输入流  



                            string source = null;
                            while ((source = sr.ReadLine()) != null)
                            {
                                src.Add(source);//文件所有行添加到List<string>中  
                            }
                        }
                        catch (Exception)
                        {

                            throw;
                        }

                        ShouCangsMenuItem[i].Tag = src;

                        foreach (string stri in src)
                        {
                            if (stri != null)
                            {
                                if (stri.StartsWith("URL="))
                                {
                                    ShouCangsMenuItem[i].ToolTipText = stri.Remove(0, 4);//ToolTipText  
                                }
                            }
                        }

                        toolstripmenuitem.DropDownItems.Add(ShouCangsMenuItem[i]);   //生成的子菜单添加到上一级菜单  
                        ShouCangsMenuItem[i].Click += new EventHandler(ShouCangsMenuItem_Click);          //为生成的子菜单添加单击消息(可写一个消息处理函数,这里就不例出来了)  
                    }
                }
                //对于子目录,进行递归调用   
                else
                {
                    DirectoryInfo Direct = files[i] as DirectoryInfo;
                    ShouCangsMenuItem[i].Text = files[i].Name;
                    // ShouCangsMenuItem[i].Image = global::MyWebBrowser2010.Properties.Resources.folder2;//菜单项图片  
                    ShouCangsMenuItem[i].ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
                    ShouCangsMenuItem[i].ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.SizeToFit;
                    toolstripmenuitem.DropDownItems.Add(ShouCangsMenuItem[i]);       //生成的子菜单添加到上一级菜单  
                    ListMenuItem(ShouCangsMenuItem[i], new DirectoryInfo(Direct.FullName));   //递归使用,生成子菜单  
                }
            }

        }

        /// <summary>
        /// 触发收藏夹里菜单的单击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ShouCangsMenuItem_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem item = (ToolStripMenuItem)sender;
            string[] tar = ((List<string>)item.Tag).ToArray();
            for (int i = 0; i < tar.Length; i++)
            {
                if (tar[i] != null)
                {
                    if (tar[i].StartsWith("URL="))
                    {
                        System.Diagnostics.Process.Start(tar[i].Remove(0, 4));
                    }
                }
            }
        }


 


 *****

当然图标没显示出来,这个有待研究....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值