Files verschieben in einen Ordner

Lia

Bekanntes Mitglied
Hi liebes Forum ,

Wieder mal eine Frage,

Ich habe drei Ordner. In dem ersten Ordner habe ich drei Test Dateien (test1,test2,test3)
In dem zweiten Ordner befindet sich bereits eine test1 Datei.

Nun sollen die Dateien aus dem ersten Ordner (test1, test2, test3) in den zweiten verschoben werden (wo test1) bereits drin ist.

Sobald die Dateien verschoben werden, soll die test1 Datei aus dem zweiten Ordner in ein neuen Ordner Archiv verschoben werden.

Der Ablauf funktioniert ich lese beide Ordner mit einer foreach Schleife aus. Wenn ich das Programm starte, dann führt er aber nur die erste Schleife aus, sobald ich nochmal das Programm ausführe verschiebt er es dann in den nächsten Ordner. Wieso führt er nicht beide schleifen auf einmal aus ??

Liebe Grüße
 

Dukel

Top Contributor
Nun sollen die Dateien aus dem ersten Ordner (test1, test2, test3) in den zweiten verschoben werden (wo test1) bereits drin ist.

Sobald die Dateien verschoben werden, soll die test1 Datei aus dem zweiten Ordner in ein neuen Ordner Archiv verschoben werden.
Sollte das nicht andersherum passieren? Erst in den Archiv Ordner verschieben, dann in den zweiten Ordner. Sonst überschreibst du erst die Datei, die ins Archiv soll.
 

Lia

Bekanntes Mitglied
Also ich hatte sowas hier schon versucht:

for (File filetest1 in listofFilesTest1)
if(filtest1.isFile()){ }
for(File filetest2 in listofFilesTest2){}
if(filetest2.isFile(){ }

die Ordnerstruktur sieht folgendermaßen aus

Ordner1 (liegen die test Dateien 1-3) im Ordner2 liegt noch gar nichts(in den Ordner2 werden die Dateien aus dem Ordner1 einfach hinverschoben)
Wenn eines der Dateien, welches aus dem Ordner1 kommt, bereits in dem Ordner zwei vorhanden ist (was vlt in einem Schritt vorher schonmal reingeschoben wurde welches in dem Fall dann eine ältere Version vn der Datei ist) , soll diese Datei aus Ordner2 ins Archiv verschoben werden.

Ich denke der Fehler liegt in dem Abschnitt, den ich hier reingepostet habe.. Wenn ich das für das erste Mal ausführe fuktioniert es. Aber beim 3-4 mal schiebt er dann aufeinmal alles weg..

LG
 

mihe7

Top Contributor
Also, mal ganz langsam:
Ordner1 (liegen die test Dateien 1-3) im Ordner2 liegt noch gar nichts(in den Ordner2 werden die Dateien aus dem Ordner1 einfach hinverschoben)
for (File filetest1 in listofFilesTest1)
if(filtest1.isFile()){ }
for(File filetest2 in listofFilesTest2){}
if(filetest2.isFile(){ }
Wenn Du die Dateiliste für Ordner2 erstellst, bevor Du Dateien verschoben hast, ist die Liste leer und bleibt auch nach dem Verschieben leer.
 

Lia

Bekanntes Mitglied
Hi @mihe7 , vielen Dank für deine Nachricht. Das mit dem verschieben habe ich inzwischen gelöst :-D
Ein neues Problem, was jetzt aufgetaucht ist.

Ordner1 = test.xlsx
Ordner2 = test.xlsx
Archiv = test.xlsx

Im Ordner1 laden immer die aktuellste Datei. Diese werden in den Ordner2 verschoben.. falls sich schon im Archiv eine alte Version dieser Dartei befindet(welches ebenfalls den gleichen Namen hat), soll diese mit der neuen Version vom Ordner2 überschrieben werden.. denke es ist wieder verwirred erklärt von mir xD..

for (int i = 0; i < listofFilesTest1.length;i++){
for (int j= 0; j < listofFilesTest2.length;j++){
for (int k = 0; k < listofFilesTestArchiv.length;k++){
if(listofFilesTest2[j].getName().equals(listofFilesTestArchiv[k].getName())){
listofFilesTestArchiv[k].delete();
}


An dieser Stelle löscht er diese Datei, dann aber aus allen Ordnern, dass soll nicht passieren. Es soll diese Datei nur gelöscht werden, damit die "neuere " version aus dem zweiten Ordner in dem Archiv hinterlegt werden kann.
(Verwirrung ?) xD

weiß auch nicht genau ob ich dafür eine neue frage aufmachen soll xD
 

IAmFloppy

Bekanntes Mitglied
Kannst du damit was anfangen?
Wenn nein, wäre es gut, wenn du Fragen zum Code stellen würdest.
Es bringt dir natürlich nichts nur den Code zu nehmen, ohne ihn zu verstehen.
Das müsste eigentlich funktionieren.
Wenn du noch Unterordner verschieben willst musst du halt abfragen, ob "file" ein Directory ist und wenn ja, musst du wieder eine for Schleife mit den Unterfiles machen.
Kannst dir auch gerne mal Rekursionen anhand von Files ansehen.

Java:
 /**
     * Will move all files from a folder to another folder
     *
     * @param folder       is the folder which contains the files which you want to move
     * @param targetFolder is the folder where you want to move the files
     */
    private void moveToFolder(File folder, File targetFolder) {
        for (File file : folder.listFiles()) {
            try {
                Files.move(file, new File(targetFolder + "\\" + file.getName()));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
 

Lia

Bekanntes Mitglied
Hi @IAmFloppy , sehr lieb von dir!
ich hatte das zuerst mit einer Foreach probiert, habe jetzt aber jeweils für jeden Ordner eine for schleife gemacht..
Der Ordner2 soll quasi immer wenn es neue neue Datei hinterlegt bekommt (ordner1), die Date die vorher drin war archivieren.
Dh. das "überschreiben" im Archiv Ordner mit der Datei aus dem Ordner2, passiert nur, wenn die Datei in allen drei Ordnern vorhanden ist.
 

IAmFloppy

Bekanntes Mitglied
Das heißt nochmal zur Wiederholung:

Der dritte Ordner ist ein Archivordner?
Und alle Dateien sollen von Ordner1 in Ordner2 verschoben werden.
Und wenn diese schon vorhanden sind, sollen sie überschrieben aber vorher in den dritten Ordner verschoben werden?
 

Lia

Bekanntes Mitglied
Genau, also wenn die Datei schon im Archiv Ordner vorhanden ist.

Somit soll der Ordner 3 immer die "ältere Version" der Datei aus dem Ordner2 haben
 

IAmFloppy

Bekanntes Mitglied
Ich hoffe, dass ich es jetzt richtig geschafft habe.
Wenn nicht, entschuldige, bin noch ein bisschen müde und verwirrt, weil ich morgen eine Mathearbeit schreibe. xD

Der Code geht alle Dateien des ersten Ordners durch und schaut ob diese Datei auch im zweiten Ordner ist.
Wenn nein, dann movet er sie da rein.
Wenn doch, dann movet er die alte Datei in den Archivordner und movet dann die Datei vom Ordner1 zum Ordner2.

Java:
private void moveToFolder(File folder1, File folder2, File archiveFolder) {
        try {
            for (File file : folder1.listFiles()) {
                if (folder2.listFiles().length != 0) {
                    for (File folderTwoFile : folder2.listFiles()) {
                        if (file.getName().equals(folderTwoFile.getName())) {
                            Files.move(folderTwoFile.toPath(), new File(archiveFolder.getAbsolutePath() + "\\" + folderTwoFile.getName()).toPath());
                            Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath());
                        } else {
                            Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath());
                        }
                    }
                } else {
                    Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 

IAmFloppy

Bekanntes Mitglied
Wenn du willst, dass die Dateien trotzdem noch in Ordner1 bleiben, auch wenn sie in Ordner2 gemovet wurden, musst du
Java:
Files.move

umändern in

Java:
Files.copy
 

mihe7

Top Contributor
Java:
import java.nio.file.Files;
import java.nio.file.Path;
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()));
        }
        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"));
    }
}
 

Lia

Bekanntes Mitglied
Also in Grunde genommen, funktioniert in meinem Code lassen, außer das er wenn die Datei in allen drei Ordnern existiert , die Datei aus Ordner 2 nicht mit der alter alten Datei aus dem Archiv Order "überschreibt "
 

Lia

Bekanntes Mitglied
Also irgdnwie frag ich mich wieso das nicht funktioniert!

If (Files.exists (folder2.toPath)){
Files.move(folder2.toPath(), archive.toPath,StandardCopyOption.REPLACE_EXISTING);

Ich nutze die ganze Zeit FileUtils.. macht das Sinn hier Files zu nutzen..

Ich hab auch das Gefühl das das nicht stimmt ^^ ☹️
 

mihe7

Top Contributor
Wo nutzt Du FileUtils und warum? Der Code von @IAmFloppy und mir nutzt ausschließlich Bordmittel. Habe meinen Code gerade nochmal getestet: funktioniert mit REPLACE_EXISTING.
 

Lia

Bekanntes Mitglied
Ich zeig Mal wie ich es gemacht habe :



Java:
For(int i=0; i < listfilesfolder1.legth; I++){
For(int k =0; k < listfilesfolder2.legth; k++) {
If ( listfilesfolder[i].getName().equals(listfilesfolder2[k].getName())){
try {
FileUtils.moveFileFromDirectory(listfilesfolder 2[k], folderdestArchiv,true);
FileUtils.moveFileFromDirectory(listfilesfolder1[i], folderdest,true);

... Da irgendwo muss doch jetzt noch der Check stattfinden, dass wenn im Archiv Ordner bereits diese Datei vorhanden ist, wird sie einfach mit der aus dem Ordner 2 überschrieben damit das verschieben funktioniert. Wenn ich's s so ausfuhre tut sich nix weil ich die exception bekomme "File vorhanden"
 
Zuletzt bearbeitet von einem Moderator:

mihe7

Top Contributor
Ich zeig Mal wie ich es gemacht habe :
For, If großgeschrieben, in der ersten for-Schleife erhöhst Du I statt i -> das kann nicht sein. Und moveFileFrom(?)Directory hört sich auch seltsam an. Ich verstehe auch immer noch nicht, warum Du eine externe Lib für Dinge verwendest, die Java von Haus aus mitbringt.

Nachtrag: ich vermute mal, dass Du Commons-IO FileUtils verwendest. Die move-Methode dort überschreibt keine Dateien, Du müsstest also selbst prüfen, ob es die Zieldatei schon gibt und ggf. löschen.
 
Zuletzt bearbeitet:

Lia

Bekanntes Mitglied
@mihe7

Code:
for(int i=0; i < listfilesfolder1.legth; i++){
for(int k =0; k < listfilesfolder2.legth; k++) {
If ( listfilesfolder[i].getName().equals(listfilesfolder2[k].getName())){
If(File fileinArchiv : listOfFileinArchive){

if(fileinArchiv.exists() && fileinArchive.getName().equals(listfilesfolder2[k].getName()))

// hier soll dann die Datei aus dem Archiv quasi gelöscht oder mit der Datei aus dem Ordner2"überschrieben werden".

}

try {
FileUtils.moveFileFromDirectory(listfilesfolder 2[k], folderdestArchiv,true);
FileUtils.moveFileFromDirectory(listfilesfolder1[i], folderdest,true);


Das Problem ist nur, bei mir kommt er erst gar nicht in diese Schleife.. :(
Danke euch vielmals für eure Mühe !!
 
X

Xyz1

Gast
Bei mir funktioniert das so
Java:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;

/**
 * @author tn, 14.04.2019
 */
public class FilesMover {
    public static HashMap<String, ArrayList<File>> moveA(File dir_a, File dir_b) throws IOException {
        HashMap<String, ArrayList<File>> fmap = new HashMap<>();
        fmap.put("copied", new ArrayList<>());
        fmap.put("existent", new ArrayList<>());
        File[] db = dir_b.listFiles();
        Arrays.sort(db);
        for (File fa : dir_a.listFiles()) {
            if (Arrays.binarySearch(db, fa, (File f1, File f2) -> f1.getName().compareTo(f2.getName())) >= 0) {
                fmap.get("existent").add(fa);
            } else {
                Path fb = Path.of(dir_b.getPath(), fa.getName());
                Files.copy(fa.toPath(), fb, StandardCopyOption.REPLACE_EXISTING);
                fmap.get("copied").add(fb.toFile());
            }
        }
        return fmap;
    }

    public static void moveB(HashMap<String, ArrayList<File>> fmap, File dir_b) throws IOException {
        for (File fa : fmap.get("existent")) {
            Path fb = Path.of(dir_b.getPath(), fa.getName());
            Files.copy(fa.toPath(), fb, StandardCopyOption.REPLACE_EXISTING);
            fmap.get("copied").add(fb.toFile());
        }
    }

    public static void main(String[] args) throws IOException {
        try {
            HashMap<String, ArrayList<File>> fmap = moveA(new File("o1"), new File("o2"));
            System.out.println("fmap: " + fmap);
            moveB(fmap, new File("o3"));
        } catch (IOException ioex) {
            System.out.println("ioex: " + ioex.getLocalizedMessage());
            throw ioex;
        }
    }
}

Code:
dir .\o1\
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       14.04.2019     17:13              0 test1.txt
-a----       14.04.2019     17:13              0 test2.txt
-a----       14.04.2019     17:13              0 test3.txt
-a----       14.04.2019     17:13              0 test4.txt

dir .\o2\
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       14.04.2019     17:13              0 test2.txt

dir .\o3\

Code:
fmap: {copied=[o2\test1.txt, o2\test3.txt, o2\test4.txt], existent=[o1\test2.txt]}

Danach enthält o2\ also alle Files aus o1\ - und o3\ enthält nur die bereits in o2\ bestehende Datei test2.txt . hth.
 
X

Xyz1

Gast
Aber nochmal ein Einschub.
moveB ändert nochmals die HashMap, das ist ggf nicht gewünscht.
Außerdem muss man bei Windows und mehreren Dateien mit gleichen Namen aufpassen. Wenn in o1\ eine Datei test2.txt wäre und in o2\ wäre eine Datei Test2.txt , so würde die Datei Test2.txt aus o2\ mit der Datei test2.txt aus o1\ überschrieben werden. Also gebe es dann mit gleichem Namen nur die Datei test2.txt in o2\. Ich weiß nicht, ob das gewünscht ist.
Falls nicht, so muss man sich equalsIgnoreCase schnappen - und mit equalsIgnoreCase sortieren und auch suchen. ... Das wiederum würd mit dem Linux FS problematisch werden.
Deswegen frage ich so genau nach, was eigentlich gewünscht ist...
 

Lia

Bekanntes Mitglied
Hi @Tobias-nrw vielen Dank für deinen Post :)
Ich würde das gerne versuchen so umzusetzen wie ich es die ganze Zeit probiere :-(
Es gibt drei Ordner: Ordner1, Ordner2 und das Archiv.
Als erstes befindet sich in dem ersten Ordner eine Test-Datei "aktuelleMitarbeiter" (zum Beispiel) , solch eine Liste wird sich ja immer wieder ändern. Diese Liste befindet sich am Anfang in dem Ordner1 und wird dann direkt in den Ordner2 verschoben(damit hier quasi immer die aktuelle Liste drin ist). So, wenn jetzt zum Beispiel die "aktuelleMitarbeiter" -Liste wieder neu bearbeitet und in den Ordner1 geschoben wird, soll die alte "aktuelleMitarbeiter" Datei in den Archiv-Ordner verschoben werden. Damit die neue Datei von Ordner 1 sich im Ordner2 verschoben werden kann. Dh. wenn sich quasi nichts tut, dann ist der Ordner1 leer, der Ordner2 enthält den aktuellen Stand der "aktuelleMitarbeiter" Datei und das Archiv enthält die vorherige Version der "aktuelleMitarbeiter" Datei.

Hoffe das ist verständlich :(

Danke.
 

IAmFloppy

Bekanntes Mitglied
for(int i=0; i < listfilesfolder1.legth; i++){ for(int k =0; k < listfilesfolder2.legth; k++) { If ( listfilesfolder.getName().equals(listfilesfolder2[k].getName())){ If(File fileinArchiv : listOfFileinArchive){ if(fileinArchiv.exists() && fileinArchive.getName().equals(listfilesfolder2[k].getName())) // hier soll dann die Datei aus dem Archiv quasi gelöscht oder mit der Datei aus dem Ordner2"überschrieben werden". } try { FileUtils.moveFileFromDirectory(listfilesfolder 2[k], folderdestArchiv,true); FileUtils.moveFileFromDirectory(listfilesfolder1, folderdest,true);

Ist denn einer dieser Ordner leer?
Wenn ich nicht gerade komplett blöd, wegen der Prüfungsphase, bin, müsste das ganze nicht durchgeführt werden, wenn der erste oder zweite Ordner leer sind.
Kannst du uns sagen, wie weit es in der for-Schleife geht?
 
X

Xyz1

Gast
Falls nicht, so muss man sich equalsIgnoreCase schnappen - und mit equalsIgnoreCase sortieren und auch suchen.
Ach sorry, my fault, mit equalsIgnoreCase zu sortieren oder zu suchen ist keine gute Idee ....

Also mal kurze Frage, hast du im zweiten Verzeichnis Dateien mit gleichen Namen wie im ersten Verzeichnis aber zum Beispiel groß-/kleingeschrieben?
 
X

Xyz1

Gast
Ist denn einer dieser Ordner leer?
Wenn ich nicht gerade komplett blöd, wegen der Prüfungsphase, bin, müsste das ganze nicht durchgeführt werden, wenn der erste oder zweite Ordner leer sind.
Kannst du uns sagen, wie weit es in der for-Schleife geht?
Prüfungsphasen? sind nicht gerade Ferien oder der Semesterbeginn. :rolleyes:
 

Lia

Bekanntes Mitglied
@IAmFloppy
Der Ordner 1 ist quasi immer leer , weil er die aktuelle Datei in den zweiten Ordner schiebt und der zweite Ordner seine "ältere Verison" mit dem was bereits im Archiv ist überschreibt oder löscht und ersetzt.
 

Lia

Bekanntes Mitglied
Gleichfalls danke :)
wenn ich zb @mihe7 sein 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"
 

IAmFloppy

Bekanntes Mitglied
Prüfungsphasen? sind nicht gerade Ferien oder der Semesterbeginn. :rolleyes:

Ich schreibe leider direkt nach den Ferien meine Abschlussprüfungen für die Realschule .-. Deswegen heißt es üben, üben, üben.
Aber zurück zum Thema

Gleichfalls danke :)
wenn ich zb @mihe7 sein 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"

Können wir nochmal deinen Code sehen? Denn wie die Fehlermeldung ja schon sagt, replaced du die File nicht, wenn sie schon existiert
 

Lia

Bekanntes Mitglied
@IAmFloppy , viel Erfolg :)

Code:
for(int i=0; i < listfilesfolder1.legth; i++){
for(int k =0; k < listfilesfolder2.legth; k++) {
If ( listfilesfolder[i].getName().equals(listfilesfolder2[k].getName())){
If(File fileinArchiv : listOfFileinArchive){

if(fileinArchiv.exists() && fileinArchive.getName().equals(listfilesfolder2[k].getName()))

// hier soll dann die Datei aus dem Archiv quasi gelöscht oder mit der Datei aus dem Ordner2"überschrieben werden".

}
else{


}

try {
FileUtils.moveFileFromDirectory(listfilesfolder2[k], folderdestArchiv,true);
FileUtils.moveFileFromDirectory(listfilesfolder1[i], folderdest,true);

Weisst du, ich bin mittlerweile selbst so verwirrt, ich weiß nicht mal mehr was mein Code macht xD
 

IAmFloppy

Bekanntes Mitglied
Versuch mal das :)
Java:
# Als erstes brauchst du die File, die überschrieben werden soll. Also die im Archiv
File archiveFile = new File(fileDieImArchivIst);

# Dann fragst du ab, ob diese Datei existiert
if(archiveFile.exists()) {
# Wenn ja, dann wird die Datei im Archiv gelöscht
    archiveFile.delete();
}

# Die neue Datei ((fileDieInsArchivSoll) wird in den Archivordner gemoved.
FileUtils.moveFileToDirectory(fileDieInsArchivSoll, archivOrdnerAlsFile, true);
 

IAmFloppy

Bekanntes Mitglied
Da wo du
Code:
// hier soll dann die Datei aus dem Archiv quasi gelöscht oder mit der Datei aus dem Ordner2"überschrieben werden".
geschrieben hast :)
 

IAmFloppy

Bekanntes Mitglied
Hier nochmal für deinen gesendeten Code umgeschrieben:
Java:
if(fileinArchiv.exists()) {
    fileinArchiv.delete();
}

FileUtils.moveFileToDirectory(listfilesfolder2[k], folderdestArchiv, true);
 

Lia

Bekanntes Mitglied
ok also irgendwas stimmt nicht, schau mal das ist mein ganzer Code:



Code:
for (File fileinFolder1 :listofFilesinF1){
    try{
    FileUtils.moveFileToDirectory(fileinFolder1,folder2,true);
    }
catch(){

}
}

for(int i = 0; i < listofFilesinF1.length(), i++){
    for(int k = 0; k < listofFilesinF2.length(), k++){
    
    if(listofFilesinF1[i].getName().equals(listofFilesinF2[k])){
    
    for(File fileinArchive : listofFileinArchive){
    
    if(fileinArchive.exists()){
    fileinArchive.delete();
    }
    
    FileUtils.moveFileToDirectory(listofFilesinF2[k], folderarchive,true);
    try{
    FileUtils.moveFileToDirectory(listofFilesinF2[k], folderarchive,true);
    }
    
    catch()
    {
    
    }
    
    }
    }
    }



}

So die Sache ist, es sollen auch nicht alle Dateien in dem Archiv gelöscht werden oder ersetzt, nur die um die es sich quasi handelt.

Danke :(
 

IAmFloppy

Bekanntes Mitglied
Java:
private void moveToFolder(File folder1, File folder2, File archiveFolder) {
        try {
            for (File file : folder1.listFiles()) {
                if (folder2.listFiles().length != 0) {
                    for (File folderTwoFile : folder2.listFiles()) {
                        if (file.getName().equals(folderTwoFile.getName())) {
                            Files.move(folderTwoFile.toPath(), new File(archiveFolder.getAbsolutePath() + "\\" + folderTwoFile.getName()).toPath());
                            Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath());
                        } else {
                            Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath());
                        }
                    }
                } else {
                    Files.move(file.toPath(), new File(folder2.getAbsolutePath() + "\\" + file.getName()).toPath());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Was ging denn damals daran nicht? Bei mir ging es eigentlich ganz gut :confused:
Probier es damit nochmal
Einfach nur
Code:
moveToFolder(new File("ordner1"), new File("ordner2"), new File("archiv"));
 

IAmFloppy

Bekanntes Mitglied
Verschiebt er den ganzen Ordner oder nur die Dateien vom Archiv Ordner?
Und sind das normale Ordner oder irgendwas spezielles? (ZIP oder so)
 

Lia

Bekanntes Mitglied
den ganzen Ordner, hab nur unten in der Funktion meine Pfade eingefügt, also an deinem Code nichts geändert.
Und das:

java.nio.file.NoSuchFileException: C:\Users\Lias\Desktop\test\Archiv
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
 

IAmFloppy

Bekanntes Mitglied
Und kannst du mir mal die Zeile zeigen?
Also wie sieht die Zeile bei dir aus:
Java:
moveToFolder(new File("ordner1"), new File("ordner2"), new File("archiv"));
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Fehlerhafte XML-Files verschieben Java Basics - Anfänger-Themen 6
Files öffnen Java Basics - Anfänger-Themen 17
M Files Java Basics - Anfänger-Themen 7
B jar files libraries Java Basics - Anfänger-Themen 2
A Files aufteilen Java Basics - Anfänger-Themen 4
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
Rakshan Running jar files, resulting in failure Java Basics - Anfänger-Themen 11
C Wo speichere ich die Jar-Files zu JGoodies FormLayout? Java Basics - Anfänger-Themen 4
F Input/Output Files von A nach B kopieren Java Basics - Anfänger-Themen 11
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
N Best Practice files[i].getAbsoluteFile() mit Sondezeichen im Vezeichnisnamen Java Basics - Anfänger-Themen 2
F ActionListener mit Files etc Java Basics - Anfänger-Themen 12
H Pfad Program Files\Common Files\Oracle\Java\javapath Java Basics - Anfänger-Themen 3
X Variablen Problem bei Aufteilung in verschiedene Class-Files Java Basics - Anfänger-Themen 4
T Input/Output Einlesen eines .txt Files nur bei gesetztem Breakpoint möglich Java Basics - Anfänger-Themen 1
M DBF-Files und Encoding Java Basics - Anfänger-Themen 4
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
U Properties außerhalb des war-Files Java Basics - Anfänger-Themen 1
N Lesen eines files mit FILES.lines Java Basics - Anfänger-Themen 11
D CSV Files richtig zusammenführen Java Basics - Anfänger-Themen 3
U Java logging generiert unerwünschten files Java Basics - Anfänger-Themen 1
C Klassen Class Files nachladen (mehrer .jar Dateien) Java Basics - Anfänger-Themen 2
S Ordnerstrukturen durchsuchen und Files bearbeiten Java Basics - Anfänger-Themen 6
G Existenz eines Files Java Basics - Anfänger-Themen 1
N Files außerhalb eines des jar-files einlesen mac Java Basics - Anfänger-Themen 10
O Files eines Directories innerhalb eines JAR-Files auflisten Java Basics - Anfänger-Themen 0
S Input/Output .txt-Files NEBEN .jar Java Basics - Anfänger-Themen 3
B Relativer Pfad zwischen zwei Files Java Basics - Anfänger-Themen 2
F Speicherlast mehrere GB durch kleine png files? Java Basics - Anfänger-Themen 1
C xsd validation with xsd files with dependencies ("schemalocation") Java Basics - Anfänger-Themen 1
R Rekursive Methode, Files finden Java Basics - Anfänger-Themen 2
Kenan89 XML-Files erstellen wirft File not found Exception Java Basics - Anfänger-Themen 9
B Files.copy wirft Exeption Java Basics - Anfänger-Themen 2
V java nio Files.copy Java Basics - Anfänger-Themen 10
C Automatisches Ausfuehren einer Funktion beim Laden eines Jar files Java Basics - Anfänger-Themen 3
A JDK installieren jar-Files ausführen Java Basics - Anfänger-Themen 12
A Datei relativ zur Lage des jar-files lesen Java Basics - Anfänger-Themen 16
L Methoden Files.walkFileTree implementation Java Basics - Anfänger-Themen 3
6 JDK installieren Runnable Jar Files ausführen?! Java Basics - Anfänger-Themen 8
G NetBeans Contains files with errors Java Basics - Anfänger-Themen 14
M Input/Output Namen der Files aus einem Ordner MIT bestimmten Encoding auslesen? Java Basics - Anfänger-Themen 3
H Jar Files verwenden Java Basics - Anfänger-Themen 9
J Wie auf eine Datei innerhalb des JAR-Files zugreifen Java Basics - Anfänger-Themen 2
N Files mit Byte an Socket versenden Java Basics - Anfänger-Themen 2
G Inhalt Jar-Files anzeigen, incl. Methoden Java Basics - Anfänger-Themen 2
S Exception: Too many open files Java Basics - Anfänger-Themen 6
apple987123 JAR Files Funktionieren nicht Java Basics - Anfänger-Themen 6
B Files aus Verzeichnis zählen Java Basics - Anfänger-Themen 9
M Online-Java-Games offline spielen? / Jar-Files zum laufen bringen? Java Basics - Anfänger-Themen 6
E ResourceBundles in Jar-Files Java Basics - Anfänger-Themen 5
M Sha256-Wert eines Files bestimmen Java Basics - Anfänger-Themen 13
S Hilfe es werden keine class files erstellt Java Basics - Anfänger-Themen 5
Y Applet lokal executable machen, externe Files inkludieren Java Basics - Anfänger-Themen 8
S String repräsentation eines XML-Files für Textarea formatieren. Java Basics - Anfänger-Themen 2
J Anfänger-Frage zu jar-Files / Manifest.mf / Classpath Java Basics - Anfänger-Themen 16
B Verzeichnisse und Dateien in JAR Files Java Basics - Anfänger-Themen 7
S Kein Zugriff auf Files in Jar-Datei Java Basics - Anfänger-Themen 4
G Zusammenfassung mehrerer jar-Files Java Basics - Anfänger-Themen 3
B Erstellen von tar Files Java Basics - Anfänger-Themen 2
G Teil eines Files einlesen und vergleichen Java Basics - Anfänger-Themen 4
U Habe meine .class files gelöscht. Java Basics - Anfänger-Themen 3
T Jar: Zugriff auf Dateien inner- unter außerhalb d. jar-Files Java Basics - Anfänger-Themen 3
M java mehrere jar files uebergeben Java Basics - Anfänger-Themen 5
L Alle Files eines Directories einlesen Java Basics - Anfänger-Themen 6
T Png files nach auslesen von BMP ohne Inhalt Java Basics - Anfänger-Themen 2
V Sprache umschalten mit properties-files mit KSKB Java Basics - Anfänger-Themen 3
G Pfad des Jar-Files ermitteln bzw. wo Datenbank speichern Java Basics - Anfänger-Themen 4
D Files aus Directory lesen Java Basics - Anfänger-Themen 2
roflomfg Parameterübergabe in in "*.jar" files möglich? Java Basics - Anfänger-Themen 8
P Import jar files: Wohin? Java Basics - Anfänger-Themen 2
J Mit JDOM HTML Files erzeugen? Java Basics - Anfänger-Themen 7
M Path eines Files Java Basics - Anfänger-Themen 24
G tomcat und class files Java Basics - Anfänger-Themen 5
G class Files zu exe ---> decompilieren? Java Basics - Anfänger-Themen 2
M Files löschen - alle, ausser das größte! Java Basics - Anfänger-Themen 3
J Werte eines XML Files überschreiben Java Basics - Anfänger-Themen 7
B erweiterte jar files - verbinden Java Basics - Anfänger-Themen 4
P JFileChooser soll nur .txt files anzeigen Java Basics - Anfänger-Themen 5
D Files Readen und Substring Java Basics - Anfänger-Themen 5
M Properties ausserhalb von jar files Java Basics - Anfänger-Themen 3
J Drucken von files Java Basics - Anfänger-Themen 4
F Java-Programm in mehreren files Java Basics - Anfänger-Themen 6
B JFileChooser für Files and Directories Java Basics - Anfänger-Themen 3
M Audio Files mit Base64 De-/Endcodieren Java Basics - Anfänger-Themen 5
C letzte Zeilen eines Files auslesen Java Basics - Anfänger-Themen 3
A Einbindung von .wav files. Java Basics - Anfänger-Themen 8
F Hilfe beim erstellen von Jar files! Java Basics - Anfänger-Themen 2
M alle Files aus einem Verzeichnis finden Java Basics - Anfänger-Themen 15
A Existenz eines Files abfragen Java Basics - Anfänger-Themen 13
G speichern von files Java Basics - Anfänger-Themen 2
A Einige Fragen zu Files Java Basics - Anfänger-Themen 2
D JAR-Files ausführbar machen Java Basics - Anfänger-Themen 28
Z prob beim erstellen eines jar files mit eclipse Java Basics - Anfänger-Themen 4
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
U Ascii wert verschieben, wie möglich? Java Basics - Anfänger-Themen 3
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Elyt JFrame in den Hintergrund verschieben Java Basics - Anfänger-Themen 3
OSchriever JFrame-Anwendungsfenster verschieben Java Basics - Anfänger-Themen 17
S Input/Output JLabel verschieben Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben