假设我有一个URL: http://java.sun.com/j2se/1.5/pdf我想得到pdf目录下所有文件/目录的列表.我正在使用java 5.我可以通过这个程序http://www.httrack.com/得到目录列表.但使用java我不知道是否可能.
有没有人知道如何在java中获取它或者这个程序如何完成java无法完成的工作?
Ale*_*lex 20
有一些条件:
可以使用像JSoup这样的lib轻松完成解析.
例如,使用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:protocol,那么您可以将其转换为a java.io.File,然后使用这些方法列出目录.
如果URL是针对http:协议的,那么就没有文件目录的概念,并且从根本上说你不能做你想做的事情.您将不得不退后一步,查看您尝试实现的更高级别要求.
让您的服务器部署Servlet以从其接收的请求指定的文件夹中检索文件列表.在您的客户端,您的应用程序通过提供您打算列出的路径(虚拟?相对?)向服务器发送请求.在servlet返回的请求的路径,从服务器的操作系统检索到的文件列表.然后,它将文件列表序列化到客户端点以进行进一步处理.
如果您只能使用HTTP访问权限呈现页面,
请执行以下操作:使用HTML页面并解析它,提供目录列表以获取文件列表,并使用正则表达式来呈现文件名称viz-a-viz.