使用java从给定的URL下载文件夹

时间:2013-03-28 09:09:47

标签: java file io awt

我正在尝试将文件夹从服务器复制到本地系统,但不知道我是如何编写代码来从服务器复制文件但却混淆了复制整个文件夹。 对于复制文件,我使用以下代码。

  BufferedInputStream in = null;
    FileOutputStream fout = null;
    try
    {
        in = new BufferedInputStream(new URL(urlString).openStream());
        fout = new FileOutputStream(filename);

        byte data[] = new byte[1024];
        int count;
        while ((count = in.read(data, 0, 1024)) != -1)
        {
            fout.write(data, 0, count);
        }
    }
    finally
    {
        if (in != null)
            in.close();
        if (fout != null)
            fout.close();
    }

并且工作正常。

3 个答案:

答案 0 :(得分:2)

HTTP不知道文件夹。特别是,无法列出“文件夹”中文件的所有URL。所以基本上,你想做的事情是不可能的。

答案 1 :(得分:1)

如果您的文件系统上安装了远程文件夹,我建议您使用Apache Commons IO,FileUtils

另一方面,如果您的远程服务器只有HTTP接口,您需要知道要下载的文件的URL,除非允许目录列表(这是不常见的)。 HttpUnit可能有用。

答案 2 :(得分:0)

通过一个简单的技巧,您可以使用http实现这一点。首先检查在浏览器中打开文件夹的URL时的表示方式。一般情况下,它可能像吼叫,

- 回
--file1.mp3
--file2.doc
- 其他一些文件
- 其他文件夹

如果你看到这里,一切都用超链接表示。您必须解析这些超链接,您可以从提供的每个超链接下载文件。如果任何超链接表示另一个文件夹(子文件夹),您必须执行我上面说明的相同过程。

如果您可以正确解析数据,则可以轻松下载整个文件夹。