gpt4 book ai didi

java - 从sourceforge下载文件[即没有特定的文件名]

转载 作者:行者123 更新时间:2023-12-01 14:06:40 25 4
gpt4 key购买 nike

我想为我的项目制作一个安装程序。我知道如何执行此操作,但只有当我在网页上知道要下载的文件的具体名称时才知道。 Sourceforge可以自动找到最新的下载,但是我如何通过使用Java来获取这个文件呢?谢谢。

如果您需要,项目下载链接在这里[不是自动下载]:https://sourceforge.net/projects/herobrawl/files/?source=navbar

再次感谢大家,

我感谢所有帮助。

最佳答案

我将向您展示如何使用 HTML 解析来做到这一点。 但是如果 SourceForge API 支持此功能,那么最好使用 SourceForge API 来实现。

要运行此代码,您需要 JSOUP

public static void main(String[] args) throws IOException {
System.out.println("Parsing the download page...");
//Get the versions page
Document doc = Jsoup.connect("http://sourceforge.net/projects/herobrawl/files/").get();
//Every link to the download page has class "name"
Elements allOddFiles = doc.select(".name");
//Elements are sorted by date, so the first element is the last added
Element lastUploadedVersion = allOddFiles.first();
//Get the link href
String href = lastUploadedVersion.attr("href");
//Download the jar
System.out.println("Parsing done.");
System.out.println("Downloading...");
String filePath = downloadFile(href, "newVersion.jar");
System.out.println("Download completed. File saved to \"" + filePath + "\"");
}

/**
* Downloads a file
*
* @param src The file download link
* @param fileName The file name on the local machine
* @return The complete file path
* @throws IOException
*/
private static String downloadFile(String src, String fileName) throws IOException {
String folder = "C:/myDirectory";//change this to whatever you need
//Open a URL Stream
URL url = new URL(src);
InputStream in = url.openStream();
OutputStream out = new BufferedOutputStream(new FileOutputStream(folder + fileName));
for (int b; (b = in.read()) != -1;) {
out.write(b);
}
out.close();
in.close();
return folder + fileName;
}

关于java - 从sourceforge下载文件[即没有特定的文件名],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18847044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com