我正在做类似于Windows资源管理器一样的东西.
现在已经差不多大公告成了.
但是有一个问题阿. 如何处理拒绝访问的文件呢? 尤其是系统文件 经常拒绝访问.
但是作为资源管理器当然要所有文件都显示. 怎么办呢?

解决方案 »

  1.   

    对,还有这个效率的问题.我不知道Windows资源管理器的文件是怎么做的,感觉我自己做的资源管理器如果遇到文件比较多的时候的话,,加载会比蜗牛还慢.还有我要实现双击图标可以启动该程序的功能,但是每当我一双击图标时,总是出现异常:另一个程序正在使用此文件,该进程无法访问.
    怎么回事呢?程序简易流程图
      

  2.   

    我使用的是DirectoryInfo 和 FileInfo
    获取ICO使用的是SHGetFileInfo.
      

  3.   

    1 遍历文件夹效率问题 
    2 系统文件拒绝访问问题 
    语言不好说,打个比方吧 TreeNode node = this.treeView1.Nodes.Add("D:\\"); AddNode(node, "D:\\");
    //增加节点
     public void AddNode(TreeNode node, string path)
            {
                try
                {
                    DirectoryInfo dir = new DirectoryInfo(path);
                    FileInfo[] files = dir.GetFiles();
                    foreach (FileInfo f in files)
                    {
                        node.Nodes.Add(f.FullName);
                    }
                    DirectoryInfo[] dirs = dir.GetDirectories();
                    foreach (DirectoryInfo d in dirs)
                    {
                        node.Nodes.Add(d.FullName);
                    }
                }
                catch { }//出错以后继续执行..
            }//点击节点的时候增加下层的节点
    private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
            {
                if (e.Node.Nodes.Count > 0)
                {
                    foreach (TreeNode node in e.Node.Nodes)
                    {
                        if (Directory.Exists(node.Text))
                            AddNode(node, node.Text);
                    }
                }
            }