2012-10-22 98 views
0

我使用Asp.net treeview来显示我的目录包括文件。我想在用户点击treeview节点后显示文件路径。我正在使用FullName属性来获取路径。我遇到的问题是,treeview只显示非文件目录的完整路径!如何在Asp.net上获取完整的文件路径?

这里是我的代码

private static TreeNode CreateDirectoryNode(DirectoryInfo directoryInfo) 
{ 
    TreeNode directoryNode = new TreeNode(directoryInfo.Name); 

    foreach (DirectoryInfo directory in directoryInfo.GetDirectories()) 
    { 
     if (!directory.Attributes.ToString().Contains("Hidden")) 
     { 
      directoryNode.ChildNodes.Add(CreateDirectoryNode(directory)); 
      directoryNode.Value = directoryInfo.FullName; // Here I'm passing the directory path 
     } 
    } 

    foreach (FileInfo file in directoryInfo.GetFiles()) 
    { 
     if (File.GetAttributes(file.FullName).ToString().IndexOf("Hidden") == -1) 
     { 
      directoryNode.ChildNodes.Add(new TreeNode(file.Name)); 
      directoryNode.Value = file.FullName; // Here I'm passing the file path 
     } 
    } 

    return directoryNode; 
} 

更新 出于某种原因,完整路径没有显示treeNode的价值的文件,但目录!

回答

1

你设定值错误的节点。

变化

directoryNode.ChildNodes.Add(new TreeNode(file.Name)); 
    directoryNode.Value = file.FullName; // Here I'm passing the file path 

TreeNode fileNode = new TreeNode(file.Name, file.FullName); 
    directoryNode.ChildNodes.Add(fileNode); 

这将设置文件节点的值到它了完整路径

+0

谢谢,让它工作! – HardCode

0

Value属性不显示

变化

directoryNode.ChildNodes.Add(new TreeNode(file.Name)); 

directoryNode.ChildNodes.Add(new TreeNode(file.FullName)); 
+0

是的,它的工作,但我不希望显示树节点上的完整文件路径。相反,我想把它作为一个值来传递。 – HardCode

+0

我很困惑,那么你问的是什么?它听起来像你想在文件节点上显示完整路径 – mlorbetske

+0

不,如果你检查我的代码,我试图将FullName传递给treeNode值。对不起,我需要更清楚一点,我正在尝试获取treeNode值,并且无法获得完整路径。 – HardCode

相关问题