Как получить список файлов/каталогов URL-адреса каталога в java?
Скажем, у меня есть URL: http://java.sun.com/j2se/1.5/pdf
Я хочу получить список всех файлов/каталогов в каталоге pdf. Я использую java 5.
Я могу получить список dir с этой программой http://www.httrack.com/. но с java я не знаю, возможно ли это.
Кто-нибудь знает, как получить его в java или как эта программа выполняет задание, которое java не может выполнить?
Ответы
Ответ 1
Существуют следующие условия:
- На сервере должен быть включен список каталогов, чтобы вы могли видеть его содержимое.
- Я не знаю (API или HTTP-глагол), чтобы получить список, поэтому список обычно отображается как обычная HTML-страница.
- Вам нужно будет проанализировать эту HTML-страницу, чтобы найти записи.
Разбор можно легко выполнить с помощью lib, например JSoup.
Например, используя JSoup, вы можете получить документы по адресу url http://howto.unixdev.net/
следующим образом:
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class Sample {
public static void main(String[] args) throws IOException {
Document doc = Jsoup.connect("http://howto.unixdev.net").get();
for (Element file : doc.select("td.right td a")) {
System.out.println(file.attr("href"));
}
}
}
Будет выводиться:
beignets.html
beignets.pdf
bsd-pam-ldap.html
ddns-updates.html
Debian_on_HP_dv6z.html
dextop-slackware.html
dirlist.html
downloads/
ldif/
Linux-SharePoint.html
rhfc3-apt.html
rhfc3-apt.tar.bz2
SUNWdsee-Debian.html
SUNWdtdte-b69.html
SUNWdtdte-b69.tar.bz2
tcshrc.html
Test_LVM_Trim_Ext4.html
Tru64-CS20-HOWTO.html
Что касается вашего образца url http://java.sun.com/j2se/1.5/pdf
, это страница не найдена, поэтому я думаю, вам не повезло.
Ответ 2
Если URL-адрес для файла: protocol, вы можете преобразовать его в java.io.File
, а затем использовать эти методы для отображения каталога.
Если URL-адрес для http: protocol, то нет никакой концепции каталогов файлов, и вы принципиально не можете делать то, что, как вы думаете, хотите сделать. Вам нужно будет отступить и посмотреть на требования более высокого уровня, которые вы пытаетесь выполнить.
Попросите сервер развернуть сервлет, чтобы получить список файлов из папки, указанной в запросе, который он получает. В конечной точке вашего клиента ваше приложение отправляет запрос на сервер путем указания пути (виртуального? Родственника?), Который вы намереваетесь перечислить. servlet
вернет список файлов в запрошенном пути, извлеченный из ОС сервера. Затем он упорядочивает список файлов в конечной точке клиента для дальнейшей обработки.
Если вы можете отобразить страницу с доступом HTTP только тогда:
Используйте HTML-страницу и проанализируйте ее, указав список каталогов, чтобы получить список файлов и viz-a-viz, используя регулярное выражение для визуализации имен файлов.