-1

我制作了一个从客户端使用的 Dropbox 下载 .zip 档案的程序,但每次我尝试打开档案时,它都会显示“无法将文件‘文件位置’作为档案打开”我该如何解决这个问题?

public void modDownload(String url, String filename) {
    try {
        URL dropbox = new URL(url);
        ReadableByteChannel rbc = Channels.newChannel(dropbox.openStream());
        FileOutputStream fos = new FileOutputStream(appdata + filename);
        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
    } catch(Exception e) {      
    }
}

我这样称呼它

modDownload("https://www.dropbox.com/s/a8itscdtu81jj2z/armorhud.zip",
            "armorhud.zip");

我究竟做错了什么?我不认为是导致问题的 URL
此外,我检查出的所有其他线程都表明 stackoverflow 建议(当我用谷歌搜索)问题时,所有答案都没有帮助,或者我不理解它们(因为解释得很差)

4

3 回答 3

1

如果您转到您指定的位置:https://www.dropbox.com/s/a8itscdtu81jj2z/armorhud.zip,您会看到一个包含下载按钮的页面。您不能指望您的代码自动认为转到下载按钮将发送给您的 URL。

它试图将 HTML 页面下载为 ZIP 文件,这就是它无法将其作为存档打开的原因。HTML 文件不是档案。将您的 URL 更改为要下载的文件的实际位置。

此外,如果您想要一种更好的方式将文件与您的应用程序交互,请查看Dropbox Core API和其他 API。

于 2013-07-28T04:12:24.097 回答
1

打开您在浏览器中发布的链接,将鼠标悬停在“下载”按钮上。如果单击该按钮,将调用一个新链接。这是您需要在代码中使用的链接。这是我通过单击下载页面上的“下载”按钮获得的链接:

https://dl.dropboxusercontent.com/s/a8itscdtu81jj2z/armorhud.zip?token_hash=AAGVg84Z26vkuqJO-3bAX6BEQREt0UDtiDRkGZXWWa1y9A&dl=1

但是,我不确定 Dropbox 如何索引他们的文件,因此在您阅读此答案时链接可能会更改。

于 2013-07-28T05:26:33.843 回答
0

如果文件位于您的公共区域,只需将文件 url 中的 www 替换为 dl,否则您需要通过右键单击文件来“获取链接”。如果您通过网络浏览器执行此操作,它将可以使用,如果您通过右键单击文件资源管理器执行此操作,则需要将 www 更改为 dl

于 2014-02-18T21:29:21.550 回答