Ich bin neu in Javas Paket nio und ich kann nicht herausfinden, wie man eine Datei von einem Verzeichnis in ein anderes bekommt. Mein Programm soll ein Verzeichnis und seine Unterverzeichnisse und Prozessdateien anhand bestimmter Bedingungen durchlesen. Ich kann alle Dateien mit Files.walkFileTree bekommen, aber wenn ich versuche, sie zu verschieben, bekomme ich eine java.nio.file.AccessDeniedException.Wie kann ich eine Datei in ein nicht leeres Verzeichnis verschieben?
Wenn ich versuche, sie zu kopieren, erhalte ich eine DirectoryNotEmptyException. Ich konnte bei Google keine Hilfe finden. Ich bin sicher, dass es eine einfache Möglichkeit gibt, eine Datei von einem Verzeichnis in ein anderes zu verschieben, aber ich kann es nicht herausfinden.
Das ist, was ich, dass der Versuch bekommt die 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();
}
}
}
}
Ich bin durch eine Liste von Dateien iterieren, eine .meta Datei mit einem PDF mit dem gleichen Namen zu entsprechen versucht. Sobald ich die Übereinstimmung gefunden habe, verschiebe ich die Metadatendatei in das Verzeichnis mit der PDF-Datei.
Ich erhalte diese Ausnahme: java.nio.file.DirectoryNotEmptyException: C: \ test \ CGBA-RAC \ Part-A bei sun.nio.fs.WindowsFileCopy.move (WindowsFileCopy.java:372) bei sun.nio.fs.WindowsFileSystemProvider.move (WindowsFileSystemProvider.java:287) unter java.nio.file.Files.move (Files.java:1347) bei cgba.rac.errorprocessor.ErrorProcessor.findMatchingPdf (ErrorProcessor.java: 149) bei cgba.rac.errorprocessor.ErrorProcessor.matchErrorFile (ErrorProcessor.java:81) bei cgba.rac.errorprocessor.ErrorProcessor.main (ErrorProcessor.java:36)
ich einige Codes in meinem OP bearbeitet. – user2406854
mögliches Duplikat von [So kopieren Sie eine Datei in ein Verzeichnis in Java 7] (http://stackoverflow.com/questions/19694471/how-to-copy-a-file-to-a-directory-in-java-) 7) – naXa