2013-04-12 6 views
0

Я хочу получить все имена файлов и список каталогов из одного веб-каталога через http:// с использованием C#.Получить имена файлов и список каталогов из веб-каталога

Например:

Directory.GetFiles(folder)** 

используется для получения списка файлов из локального каталога, так же, как я хочу, чтобы получить список файлов из веб-каталога.

ответ

0

Вы не можете использовать Directory.GetFiles по URL-адресу.

Рассмотрим пример:

string baseURL = "http://download.example.org/export/dump/"; 
WebClient client = new WebClient();    
string content = client.DownloadString(baseURL); 

Затем запустите цикл внутри.

3

Ну, я не верю, что HTTP имеет "directory index", который вы можете использовать напрямую.

Вы не можете передать url в Directory.GetFiles методе, этот метод принимает в качестве параметра физического пути URL (если она доступна, конечно).

Проверьте метод Server.MapPath.

Метод MapPath сопоставляет указанный относительный или виртуальный путь к соответствующему физическому каталогу на сервере .

Путь

Задает относительный или виртуальный путь к карте физическому каталогу. Если Путь начинается либо с прямой (/), либо с обратной косой чертой(), метод MapPath возвращает путь, как если бы Путь был полным, виртуальным путем. Если Путь не начинается с косой черты, метод MapPath возвращает путь относительно каталога обрабатываемого файла .asp.

+1

+1: примечание стороны - 'MapPath' собирается помочь только если вы заинтересованы в перечислении файлов на вашем собственном сервере ... иначе не возможно (и вообще нет«файлы»позади большинства URLs) , [Sitemap] (http://en.wikipedia.org/wiki/Sitemaps) может дать некоторое представление, если оно поддерживается конкретным сервером ... –

1

HTTP сам по себе не имеет функции для отображения содержимого FILE в папке. Это невозможно, с одной стороны, поскольку спецификация HTTP не требует, чтобы URL-адрес отображался в папку. Вся база программируемых веб-страниц основана на URL-адресе, который не отображается в файл STATIC.

Однако. Там много расширений для протокола HTTP. WebDAV IS - протокол для сопоставления HTTP-URI в каталог в определенном месте. Выезд here for how to query a WebDAV service for the content of a folder.

Однако он не может делать рекурсивные запросы, насколько я знаю.

4
System.IO.Directory.GetFiles(HttpContext.Current.Server.MapPath("~/PortalPage/")) 
Смежные вопросы