私はJavaでの再帰とファイル操作に新しいので、ディレクトリとそのサブディレクトリのすべてをプログラムが置かれているディレクトリにコピーします。しかし、私はIOExceptionを取得し続けます。 プロセスは別のプロセスで使用されているため、ファイルにアクセスできません。次のように マイ再帰コードは次のとおりです。あるタイプのすべてのファイルをディレクトリからコピーすると、使用中のエラーが発生し、再帰でエラーが発生する
private ArrayList<File> addSongList(String dir) {
ArrayList<File> songsToAdd = new ArrayList<File>();
File currentFolder = new File(dir);
File[] files = currentFolder.listFiles();
for (int i = 0; i < files.length; i++)
if (files[i].getName().contains(".mp3") || files[i].getName().contains(".wma"))
songsToAdd.add(files[i]);
else if (files[i].isDirectory())
songsToAdd.addAll(addSongList(dir + "/" + files[i].getName()));
return songsToAdd;
}
基本的には、元のディレクトリ変数内のディレクトリとサブディレクトリのすべてを通過し、ArrayListを(songsToAdd)にすべて.MP3と.wavファイルを追加します。このメソッドは、アクションリスナーによって
ArrayList<File> Songs = addSongList(dir);
String finalPath = new File("").getAbsolutePath();
for(int i = 0; i < Songs.size(); i++){
try {
Files.copy(Songs.get(i).toPath(), new File(finalPath).toPath(), StandardCopyOption.REPLACE_EXISTING);
System.out.println("Copied " + Songs.get(i).getName() + " to " + finalPath);
} catch (IOException arg0) {
// TODO Auto-generated catch block
arg0.printStackTrace();
}
}
System.out.println("Copy Complete!");
と呼ばれます。私はなぜそれがこのエラーを投げているのか理解できません。
ありがとうございました!それは完璧に動作します! – Ranger645