无法使用system.io文件添加标记,因为我需要在以后的代码中将其转换为fileinfo对象

时间:2015-06-14 05:27:21

标签: c# listview treeview fileinfo

文件阳极的标签导致目录阳极错误,这是因为它们是同一个吗?另外我认为从标签到fileinfo对象的转换是不行的。有关如何将fileinfo导入用户选择填充列表视图的节点的任何建议?

//see code below where attempts made to add tags
foreach (DirectoryInfo subDir in subDirs)
        {
            aNode = new TreeNode(subDir.Name, 0, 0);
            aNode.Tag = subDir;
            aNode.ImageKey = "Folder";
            aNode.ImageIndex = 0;
            aNode.SelectedImageIndex = 1;
            subSubDirs = subDir.GetDirectories();

            if (subSubDirs.Length != 0)
            {
                GetDirectories(subSubDirs, aNode);
            }

            //add files to treeview
            foreach (var file in subDir.GetFiles())
            {
                if(file.Name.Contains(".rfa"))
                {
                aNode.Nodes.Add(new TreeNode(file.Name)); 
           //cant add a tag to the file only to the directory
             aNode.Tag = file;               

                }
            }

            nodeToAddTo.Nodes.Add(aNode);
        }

1 个答案:

答案 0 :(得分:0)

1)为了检查文件的扩展名,最好使用:

file.Extension.Equals(".rfa", StringComparison.OrdinalIgnoreCase);

2)您正在修改aNode'Tag'属性,这可能是导致您出现问题的原因,请尝试按如下方式修改:

aNode.Nodes.Add(new TreeNode(file.Name){Tag=file});
3)恕我直言,你不应该把FileInfo / DirectoryInfo对象保留在'Tag'中,而应该使用路径本身

4)如果您只想在树视图中显示目录的结构,请查看以下内容:https://stackoverflow.com/a/6239644/120391 [您可以轻松修改它以仅显示'.rfa'文件]