如何删除与TreeView检查节点相对应的文件?

时间:2015-08-09 16:56:08

标签: c# visual-studio treeview

我想从树视图中删除treenode,但也要从指定的文件夹中删除。 这是我尝试做的,但似乎有些不对劲......     我在网上搜索了很多,到处都是关于删除指定路径中的所有内容(清除)。 非常感谢!

void RemoveCheckedNodes(TreeNodeCollection nodes)
    {
        string currentLocation = Directory.GetCurrentDirectory() + "\\Notes";
        List<TreeNode> checkedNodes = new List<TreeNode>();

        foreach (TreeNode node in nodes)
        {
            if (node.Checked)
            {
                checkedNodes.Add(node);
            }
            else
            {
                RemoveCheckedNodes(node.Nodes);
            }
        }

        foreach (TreeNode checkedNode in checkedNodes)
        {
            nodes.Remove(checkedNode);
            string[] path = new string[checkedNodes.Count];
            for (int i = 0; i < checkedNodes.Count; i++)
            {
                path[i]=(currentLocation + "\\" + nodes + ".txt");
                File.Delete(path[i]);
            }                    

        } 
    }

1 个答案:

答案 0 :(得分:1)

对不起,我感到很遗憾,但直到现在我还没有上网... 我找到了解决问题的方法:

 private string currentLocation = Directory.GetCurrentDirectory() + "\\notes";//curent location of the files
 public void RemoveSelectedNodes(TreeNodeCollection nodes)// delete selected nodes from memory
    {
        List<TreeNode> checkedNodes = new List<TreeNode>();

        foreach (TreeNode node in nodes)
        {
            if (node.Checked)
            {
                checkedNodes.Add(node);
            }
            else
            {
                RemoveSelectedNodes(node.Nodes);
            }
        }

        foreach (TreeNode checkedNode in checkedNodes)
            {
            nodes.Remove(checkedNode);
            string[] path = new string[checkedNodes.Count];
            for (int i=0; i < checkedNodes.Count;i++)
            {
                try
                {
                    path[i] = (currentLocation+ "\\" + checkedNode.Text);
                    File.Delete(path[i]);
                    i++;

                }
                catch (Exception)
                {
                    MessageBox.Show("You must select minimum 1 element !");
                }

            } 
       }

代码表示填充了.rtf文件的树视图,可以通过从树视图中选择来删除。