如何获取目录URL的文件/目录列表?
假设我有一个URL:我想获取该目录下所有文件/目录的列表。http://java.sun.com/j2se/1.5/pdf
pdf
我使用的是 Java 5。
我可以用这个程序 http://www.httrack.com/ 获得dir列表,但是使用Java我不知道这是否可能。
有没有人知道如何在Java中获取它?或者,如果Java不能,这个程序怎么能完成这项工作呢?
假设我有一个URL:我想获取该目录下所有文件/目录的列表。http://java.sun.com/j2se/1.5/pdf
pdf
我使用的是 Java 5。
我可以用这个程序 http://www.httrack.com/ 获得dir列表,但是使用Java我不知道这是否可能。
有没有人知道如何在Java中获取它?或者,如果Java不能,这个程序怎么能完成这项工作呢?
有一些条件:
解析可以使用像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
至于你的示例网址,这是一个找不到的页面,所以我认为你运气不好。http://java.sun.com/j2se/1.5/pdf
如果 URL 用于 file: 协议,则可以将其转换为 ,然后使用这些方法列出目录。java.io.File
如果URL是针对http:协议的,那么就没有文件目录的概念,你根本无法做你认为你想做的事情。你将不得不退后一步,看看你试图满足的更高层次的要求。
让您的服务器部署一个 Servlet,以从它收到的请求指定的文件夹中检索文件列表。在客户端端点,应用程序通过提供要列出的路径(虚拟?相对?)向服务器发送请求。将返回从服务器的操作系统检索到的请求路径中的文件列表。然后,它将文件列表序列化到客户端终结点以进行进一步处理。servlet
如果只能使用 HTTP 访问权限呈现页面:
使用 HTML 页面并解析它,给出目录列表以获取文件列表,并使用正则表达式可视化来呈现文件名。