复制目录不会复制源文件夹Java

时间:2017-12-05 13:09:52

标签: java copy directory

我正在尝试使用Java将文件夹/文件从一个位置复制到另一个位置。我是Java的初学者,我想要一个简洁的小库,我相信它叫做Apache FileUtils,它有一个FileUtils.CopyDirectory()方法,它应该将文件夹从一个目的地复制到另一个目的地。但是,对我来说,它只复制文件夹本身内部的内容。

else if (command.equals("COPY")){
        System.out.println("Enter the path of the file/folder you wish to copy : ");
        Scanner scannerPath = new Scanner(System.in);
        path = scannerPath.nextLine();
        File copiedFolder = new File(path);
        System.out.println("Enter the path where you want to copy the file/folder: ");
        String newpath = scannerPath.nextLine();
        File copyFolder = new File(newpath);
        if (copiedFolder.isDirectory() && copiedFolder.exists())
        {

            FileUtils.copyDirectory(copiedFolder, copyFolder);
            System.out.println("Copy successful !");
        }
        else if (copiedFolder.isFile())
        {

            FileUtils.copyFile(copiedFolder, copyFolder);
            System.out.println("Copy successful !");
        }
        else {
            System.out.println("Copy failed. Check if the file/folder exists !");
        }

它应该复制整个目录,但由于某种原因它对我不起作用。

1 个答案:

答案 0 :(得分:0)

来自copyDirectory的文档:

  

目的地是目录的新位置和名称。

  

如果目标目录确实存在,则此方法合并   源与目的地,源优先。

基本上,目标目录将代表自己的源目录副本。

您可以考虑在路径中添加具有所需名称的子目录,例如:

File copyFolder = new File(newpath + File.separator + copiedFolder.getName());