以下のコードをボタンクリックで使用して、ファイルをダウンロードして場所に保存しようとしています。ただし、常に目的の宛先が見つからなかったことを返します。必要なディレクトリを作成していないようです。それを行うように指示する必要がありますか、それとも私のためにそれを行うことになっていますか? 以下は私が使用している機能です:
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!");
}