Files verschieben in einen Ordner

Bitte aktiviere JavaScript!
Java:
private void moveToFolder(File folder1, File folder2, File archiveFolder) {
    try {
        for (File file : folder1.listFiles()) {
            if (!file.isDirectory()) {
                if (folder2.listFiles().length != 0) {
                    for (File folderTwoFile : folder2.listFiles()) {
                        if (!folderTwoFile.isDirectory()) {
                            if (file.getName().equals(folderTwoFile.getName())) {
                                Files.move(folderTwoFile.toPath(), new File(archiveFolder.getAbsolutePath() + "\\" + folderTwoFile.getName()).toPath(), StandardCopyOption.REPLACE_EXISTING);
                                Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath(), StandardCopyOption.REPLACE_EXISTING);
                            } else {
                                Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath(), StandardCopyOption.REPLACE_EXISTING);
                            }
                        }
                    }
                } else {
                    Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath(), StandardCopyOption.REPLACE_EXISTING);
                }
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Versuchs mal damit. :)
Ich habe jetzt
Java:
StandardCopyOption.REPLACE_EXISTING
hinzugefügt.
Das heißt, wie du es wahrscheinlich schon bemerkt hast, dass es eben eine existierende Datei überschreiben soll, falls sie überhaupt da ist.
Damit müsste es eigentlich funktionieren. :D
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Mensch, wir sitzen jetzt schon so lange an einer kleinen Funktion :D
Google Mitarbeiter würden uns jetzt wahrscheinlich auslachen xD
Ich bin froh, wenn wir das Problem gelöst haben
 
ok also, es funktioniert FAST XD
wenn ich es aus dem Ordner1 zb mit einer test2.txt probiere, löscht sie sich aus dem Ordner2 und ich bekomme die exception java.nio.file.NoSuchFileException: C:\Users\Lias\Desktop\test\test2.xlsx



Und noch eine Frage nebenbei, gibt es eine Funktion, die alle dateien aus dem Ordner nimmt? weil im moment muss ich es immer ausführen damit er jede einzeln in den Ordner2 schiebt :/
 
Ich will Euch ja nicht stören, aber funktioniert das hier nicht?
Java:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.io.File;
import java.io.IOException;

public class Test {
    public static void moveAll(File sourceFolder, File destFolder, File archiveFolder) throws IOException {
        Path source = sourceFolder.toPath();
        Path dest = destFolder.toPath();
        Path archive = archiveFolder.toPath();

        assertDirectory(source);
        assertDirectory(dest);
        assertDirectory(archive);
        
        for (File sourceFile : sourceFolder.listFiles()) {
            move(sourceFile.toPath(), dest, archive);
        }
    }

    private static void move(Path sourceFile, Path destFolder, Path archiveFolder) throws IOException {
        if (!Files.isRegularFile(sourceFile)) {
            return;
        }

        Path destPath = destFolder.resolve(sourceFile.getFileName());
        if (Files.exists(destPath)) {
            Files.move(destPath, archiveFolder.resolve(sourceFile.getFileName()), StandardCopyOption.REPLACE_EXISTING);
        }
        Files.move(sourceFile, destPath);
    }

    private static void assertDirectory(Path path) {
        if (!Files.isDirectory(path)) {
            throw new IllegalArgumentException("Not a directory: " + path);
        }
    }    

    public static void main(String[] args) throws Exception {
        moveAll(new File("folder1"), new File("folder2"), new File("folder2/archive"));
    }
}
 
:)
wenn ich deinen @mihe7 Code ausführe, funktioniert er soweit wie meiner, aber sobald ich in allen drei Ordnern die selbe Datei habe und quasi versuche wieder die aktuelle testdatei in den Ordner2 zu verschieben kommt die Meldung" File Already exist"
 
wenn ich deinen @mihe7 Code ausführe, funktioniert er soweit wie meiner, aber sobald ich in allen drei Ordnern die selbe Datei habe und quasi versuche wieder die aktuelle testdatei in den Ordner2 zu verschieben kommt die Meldung" File Already exist"
Hast Du den zuletzt gepostesten Code probiert und nur in main die Ordner entsprechend angepasst?
 
wenn ich es aus dem Ordner1 zb mit einer test2.txt probiere, löscht sie sich aus dem Ordner2 und ich bekomme die exception java.nio.file.NoSuchFileException: C:\Users\Lias\Desktop\test\test2.xlsx
Du hast es mit einer .txt Datei probiert aber bekommst den Fehler von einer xlsx? Das ist äußerst komisch.
Eigentlich dürfte es sich nicht löschen, ich habe den Fehler bei mir nicht feststellen können. :(
 
habe das jetzt mal mit @mihe7 seinem Code probiert , habe noch eine kleine Frage, was bedeutet "assertDirectory"? also habe vorher nichts davon gehört :/

Danke vielmals euch beiden :)
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben