如何将目录文件夹复制到子目录中除Java中指定文件夹以外的目录?

时间:2020-08-10 08:17:50

标签: java

我想使用java将父文件夹的子文件夹移动到另一个父子文件夹,下面是文件夹结构。

Source Dir : C:\Users\xxxxx\git\project\Parent
Desctinaton Dir: C:\Users\xxxxx\git\project\Parent\oldParent

Parent
       oldParent
Subdolder1
Subfolder2

现在我想将Subfolder1,2移到oldParent文件夹中。我正在使用下面的代码进行移动,但是它不起作用

import org.apache.commons.io.FileUtils;
    public static void move(File sourceDir,File destinationDir){
            
            try {
               // FileUtils.copyDirectory(sourceDir, destinationDir);
                FileUtils.moveDirectory(sourceDir, destinationDir);
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }

例外:

org.apache.commons.io.FileExistsException: Destination C:\Users\xxxxx\git\project\Parent\oldParent already exists

1 个答案:

答案 0 :(得分:0)

我已经修改了一点点代码,只是添加了文件,然后移动了文件,没有删除文件,然后我在下面的代码中使用了,现在它正在移动文件夹并在移动后删除文件夹。

import org.apache.commons.io.FileUtils;
 public static void moveDirectory(File sourceDir, File destinationDir) throws IOException {
        FileUtils.copyDirectory(sourceDir, destinationDir);

try {

            File directory = new File(sourceDir);
            File[] subdirs = directory.listFiles((FileFilter) DirectoryFileFilter.DIRECTORY);
            for (File dir : subdirs) {
                // System.out.println("Directory: " + dir.getName());
                String name = dir.getName();
                if (!name.equalsIgnoreCase(folderName)) {
                    FileUtils.forceDelete(new File(folderPath + name));
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }