Я написал эту функцию ниже, чтобы найти все папки под названием «Строительные документы», Я хочу, чтобы он скопировал все содержимое в другой каталог.Как скопировать одну папку с ее содержимым в другую папку в Java
private void findDirectory(File parentDirectory, String insertDir) {
if(foundFolder) {
return;
}
File[] files = parentDirectory.listFiles();
for (File file : files) {
if (file.isFile()) {
continue;
}
if (file.getName().equals("Construction Documents")) {
System.out.println(file.getAbsolutePath());
if(file.getParent().contains("Original") || file.getParent().contains("Revision") || file.getParent().contains("R0")){
new File(insertDir + file.getParent()).mkdir();
try {
// FileUtils.copyDirectory(new File(file), new File(insertDir + file.getParent().toString()));
Files.copy(file.toPath(), new File(insertDir + file.getParent().toString()).toPath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
if(file.isDirectory()) {
findDirectory(file, insertDir);
}
}
}
insertDir является Строка пути идентификатор файла хотел вставить папку. Я попытался с помощью FileUtils, однако это скопировал весь каталог более, в том числе многих родительских файлов до фактической папки строительных документов. Родная Java тоже не работала и просто приводила к ошибкам.
Короче говоря, я хотел бы скопировать одну папку со всеми ее вложенными папками и содержимым в другую папку, однако без всех родительских файлов из скопированного файла, созданного на конечной стороне.
Я не думаю, что 'continue' делает то, что вы думаете. На самом деле он переходит к следующему «файлу» в цикле, а не к вашему коду. –
эта часть фактически хорошо. Эта часть просто игнорирует файлы при поиске подходящей папки для копирования. – ZKayyali