Как получить полный путь к файлу на Asp.net?

Я использую древовидное представление Asp.net, чтобы показать свой каталог, включая файлы. Я хочу показать путь к файлу, как только пользователь нажмет на узел дерева. Я использую свойство 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;
}

Обновить По какой-то причине полный путь показывает не значение узла дерева для файла, а для каталога!


person HardCode    schedule 22.10.2012    source источник


Ответы (2)


Вы установили значение неправильному узлу.

Изменять

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

To

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

Это установит значение узла файла на его полный путь.

person Nogard    schedule 22.10.2012

Свойство Value не отображается

Изменять

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

To

directoryNode.ChildNodes.Add(new TreeNode(file.FullName));
person mlorbetske    schedule 22.10.2012
comment
Да, это работает, но я не хочу показывать полный путь к файлу в узле дерева. Вместо этого я хочу передать его как значение. - person HardCode; 22.10.2012
comment
Я в замешательстве, о чем ты тогда спрашиваешь? Похоже, вы хотели, чтобы полный путь отображался на файловом узле. - person mlorbetske; 22.10.2012
comment
Нет, если вы проверите мой код, я пытаюсь передать значение FullName в значение treeNode. Извините, мне нужно быть более ясным, я пытаюсь получить значение treeNode и не могу получить полный путь. - person HardCode; 22.10.2012