Я новичок в пакете nio от Java, и я не могу понять, как получить файл из одного каталога в другой. Моя программа должна читать через каталог и его подкаталоги и файлы процессов на основе определенных условий. Я могу получить все файлы, используя Files.walkFileTree, но когда я пытаюсь их переместить, я получаю java.nio.file.AccessDeniedException.Как перенести файл в непустой каталог?
Если я попытаюсь их скопировать, я получаю исключение DirectoryNotEmptyException. Я не смог найти помощь в Google. Я уверен, что должен быть простой способ переместить файл из одного каталога в другой, но я не могу понять это.
Это то, что я пытаюсь, что получает DirectoryNotEmptyException:
private static void findMatchingPdf(Path file, ArrayList cgbaFiles) {
Iterator iter = cgbaFiles.iterator();
String pdfOfFile = file.getFileName().toString().substring(0, file.getFileName().toString().length() - 5) + ".pdf";
while (iter.hasNext()){
Path cgbaFile = (Path) iter.next();
if (cgbaFile.getFileName().toString().equals(pdfOfFile)) {
try {
Files.move(file, cgbaFile.getParent(), StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
Я итерация по списку файлов, пытаясь соответствовать .meta файл с .pdf с одноименным названием. Как только я нахожу совпадение, я перемещаю файл метаданных в каталог с файлом pdf.
Я получаю это исключение: java.nio.file.DirectoryNotEmptyException: C: \ Test \ CGBA-RAC \ Part-A на sun.nio.fs.WindowsFileCopy.move (WindowsFileCopy.java:372) в sun.nio.fs.WindowsFileSystemProvider.move (WindowsFileSystemProvider.java:287) в java.nio.file.Files.move (Files.java:1347) at cgba.rac.errorprocessor.ErrorProcessor.findMatchingPdf (ErrorProcessor.java: 149) в cgba.rac.errorprocessor.ErrorProcessor.matchErrorFile (ErrorProcessor.java:81) в cgba.rac.errorprocessor.ErrorProcessor.main (ErrorProcessor.java:36)
отредактированные некоторый код в моем OP. – user2406854
Возможный дубликат [Как скопировать файл в каталог в Java 7] (http://stackoverflow.com/questions/19694471/how-to-copy-a-file-to-a-directory-in-java- 7) – naXa