C # Make Tree Node текстовая ссылка для скачивания - PullRequest
0 голосов
/ 15 мая 2018

Вот код, который я использую для построения дерева:

ссылка из Nick Saxelby

<script runat="server">
    protected void NodeLoad(object sender, NodeLoadEventArgs e)
    {
        // NodeID stores the local disk path ( full path ) of the selected node to expand
        string path = e.NodeID;

        if (!string.IsNullOrEmpty(e.NodeID))
        {
            foreach(var folder in System.IO.Directory.GetDirectories(path))
            {
                string folderName = new System.IO.DirectoryInfo(folder).Name;
                Node folderNode = new Node();
                folderNode.Text = folderName;
                folderNode.NodeID = folder;
                e.Nodes.Add(folderNode);
            }

            foreach(var fileLeaf in System.IO.Directory.GetFiles(path))
            {
                Node treeNode = new Node();
                treeNode.Text = System.IO.Path.GetFileName(fileLeaf);
                treeNode.NodeID = fileLeaf;
                treeNode.Leaf = true;
                e.Nodes.Add(treeNode);
            }
        }
    }
</script>

Как сделать текст TreeNode доступным для загрузки url, чтобы пользователь мог загрузить определенный файл?

1 Ответ

0 голосов
/ 15 мая 2018

Чтобы установить ссылку на узел, установите treeNode.Href на URL.

Если файлы уже размещены на вашем сайте рядом с этой страницей, я думаю, вы знаете их URL.

Скажем, например, локальный файл, такой как C:\inetpub\wwwroot\Files\Directory\MyFile.txt, можно найти по адресу http://example.com/Files/Directory/MyFile.txt

В этом случае вам нужно выяснить этот URL. Я сделал инструмент для «пересоздания» локальных файловых путей в веб-пути, это пакет NuGet с именем PathMatcher (прокрутите вниз в документах к разделу 'PathMatcher.Resituate' для примеров)

...