如何在Asp.net上获取完整的文件路径?

时间:2012-10-22 16:05:14

标签: c# asp.net treeview fileinfo directoryinfo

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

这是我的代码

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值,而是目录!

2 个答案:

答案 0 :(得分: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);

这会将文件节点的值设置为“完整路径”

答案 1 :(得分:0)

不显示Value属性

更改

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

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