Samira Radwan Ответов: 2

Directoryinfo из URL-адреса


Всем привет,

У меня есть TreeView, чтобы перечислить содержимое каталога. Каталог / папка находится на том же сервере, на котором размещен веб-сайт. Это работает очень хорошо.
Я пытаюсь перечислить содержимое каталога по внешнему URL-адресу.
Я перепробовал много способов и все дает ошибку
URI formats are not supported
что вполне логично.
Я хочу знать, как лучше всего перечислить содержимое URL-папки если можно Если это невозможно, есть ли альтернативное решение?
Я использую asp.net веб-формы.

Заранее спасибо
Самира

Что я уже пробовал:

Мой код для просмотра папки на веб-сервере:
DirectoryInfo rootInfo = new DirectoryInfo(@"\\10.0.0.8\d$\f1\webApp\apps");
            int directoryCount = rootInfo.GetDirectories().Length;
            Docs_treeView.Nodes.Clear();
            //if there's sub-direcotries under the selected directory to list
            if (directoryCount > 0)
            {
                this.PopulateTreeView_WithDirectories(rootInfo, Docs_treeView, null);
            }
            else
            {
                //just populate only files 
                this.PopulateTreeView_WithFiles(rootInfo, Docs_treeView, null);
            }

Попытка заменить
DirectoryInfo rootInfo = new DirectoryInfo(@"\\10.0.0.8\d$\f1\webApp\apps");

с
DirectoryInfo rootInfo = new DirectoryInfo(@"https://abc/f1/webApp/apps");

2 Ответов

Рейтинг:
2

ZurdoDev

Нет, это невозможно, потому что серверы не раскрывают свою файловую структуру. Раньше в IIS был (и может быть до сих пор) параметр, разрешающий перечисление содержимого каталога, но по умолчанию он не включен для параметров безопасности.


Рейтинг:
0

jimmson

Привет,

Я ожидаю, что вы сделаете это с сервера. Затем вам нужно сопоставить URL-адрес с физическим путем:
HttpServerUtility.Метод MapPath (String) (System. Web)[^]

Если вы не делаете это с сервера, то нет никакого способа сделать это. Как сказал Райан, серверы не раскрывают свою файловую структуру.