首页 > 解决方案 > 将文件从多个子目录移动到单个目录

问题描述

我需要通过 java 代码将文件从 4 层子目录移动到主目录。有人可以帮我吗?我尝试了以下代码,但在读取源路径时出错。我不知道确切的源位置名称,只知道目录末尾有一个文件,需要将文件复制到一个目录。输入:D:/Move/in1/in2/in3/a.txt 预期输出:D:/Move/a.txt

public class Example2 {
    private static List<File> files = new ArrayList();

    public static void main(String[] args) {

        String dirName = "D:\\Move/";
        File file = new File(dirName);
        List<File> myfiles = Listingfiles(file);

    }

    public static List<File> Listingfiles(File dirName) {

        File[] fileList = dirName.listFiles();
        for (File file : fileList) {

            if (file.isFile()) {

                String foldername = dirName.getName();
                System.out.println("folder name---- " +foldername);

                String filename = file.getName();
                System.out.println("file name----"+filename);

                File oldName = new File(dirName+ "\\" +filename);
                System.out.println("oldname------"+oldName);


                Path source = Paths.get("dirName");
                Path newDir = Paths.get("D:/Move/in1/");

                try {
                    Files.move(source, newDir.resolve(source.getFileName()),StandardCopyOption.REPLACE_EXISTING);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } 


                files.add(file);
            } 
            else if (file.isDirectory()) {

                files.add(file);
                Listingfiles(file);
            }
        }

        return files;
    }
}

标签: java

解决方案


推荐阅读