我正在尝试在单击按钮时使用下面的代码来下载文件并将其保存到某个位置。但是,它总是返回找不到目标目的地。它似乎没有创建所需的目录。我必须告诉它这样做还是应该为我这样做?以下是我正在使用的功能:
public void actionPerformed(ActionEvent ae) {
try {
//ProgressBar/Install
System.out.println("FILELOCATION:\n----------");
System.out.println(filelocation.getText());
String URL_LOCATION = "http://www.futureretrogaming.tk/gamefiles/ProfessorPhys.iso";
String LOCAL_FILE = (filelocation.getText() + "\\ProfessorPhys\\");
System.out.println("LOCALFILE:\n-------");
System.out.println(LOCAL_FILE);
URL website = new URL(URL_LOCATION);
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(LOCAL_FILE+"\\ProfessorPhys.iso\\");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
System.out.println("--------\nDone Downloading\n---------");
} catch (Exception e) {
System.out.println(e);
}
编辑:
如果我手动创建它下载的目录(有点)。无论如何要检查目录是否已经存在以及是否没有创建它?此外,当它下载时,它只是制作它不下载的文件,因为显示的下载文件是 0 字节。我怎样才能解决这个问题?
编辑:
我创建了以下代码来检查目录是否存在,如果不存在,则创建它。但是,这确实有效,唯一仍然无效的是下载。我现在已经在标题中包含了这个问题。
对于任何想要其工作的代码的人,如下所示:
String LOCAL_FILE = (filelocation.getText() + "\\ProfessorPhys\\");
File localfile = new File(LOCAL_FILE);
if (localfile.exists()) {
System.out.println("Directory exists!");
}
else {
System.out.println("Directory doesn't exist! Creating...");
localfile.mkdir();
if (localfile.exists())
System.out.println("Directory created!");
}