无法使用 system.io 文件添加标签,因为我需要稍后在我的代码中将其转换为文件信息对象
Can't add a tag using system.io file, as i need it to be cast as a fileinfo object later in my code
文件 anode 的标记导致目录 anode 出错,这是因为它们是同一个吗?我还认为从标签到 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) 为了检查文件的扩展名,最好使用:
file.Extension.Equals(".rfa", StringComparison.OrdinalIgnoreCase);
2) 您正在修改 aNode 'Tag' 属性,这可能是导致您问题的原因,请尝试按如下方式修改它:
aNode.Nodes.Add(new TreeNode(file.Name){Tag=file});
3) 恕我直言,您不应将 FileInfo/DirectoryInfo 对象保留在 'Tag' 中,而应使用路径本身
4) 如果您只想在树视图中显示目录结构,请查看以下内容:
[您可以轻松修改它以仅显示“.rfa”文件]
文件 anode 的标记导致目录 anode 出错,这是因为它们是同一个吗?我还认为从标签到 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) 为了检查文件的扩展名,最好使用:
file.Extension.Equals(".rfa", StringComparison.OrdinalIgnoreCase);
2) 您正在修改 aNode 'Tag' 属性,这可能是导致您问题的原因,请尝试按如下方式修改它:
aNode.Nodes.Add(new TreeNode(file.Name){Tag=file});
3) 恕我直言,您不应将 FileInfo/DirectoryInfo 对象保留在 'Tag' 中,而应使用路径本身
4) 如果您只想在树视图中显示目录结构,请查看以下内容: [您可以轻松修改它以仅显示“.rfa”文件]