丶流年 ڡ 2020-01-08 10:12 采纳率: 0%
浏览 181

Idea编译器下用Java语言编写一个类似于脚本的程序,可以同时批量获取不同路径下的.java和.class和.xml文件 并将其粘贴到与之前的目录层级结构相同的目标目录下

如题所述 类似于脚本 但是不用Linux语言编译bash脚本 纯java的话该如何实现上述功能 图片说明

  • 写回答

1条回答 默认 最新

  • yhmoling 2023-10-17 11:50
    关注

    这个递归遍历你指定的文件夹下所有的子目录,将所有符合条件的文件加到list,然后直接将符合条件的文件移动过去就好;
    简单代码示例

     /**
         * @param sourceDir 源目录
         * @param tarDir    目标路径
         * @param project   项目名
         */
        public static void move(String sourceDir, String tarDir, String project) throws IOException {
            File file = new File(sourceDir);
            List<File> subFile = findSubFile(file, Arrays.asList("class"));
            Path tarFile;
            for (File f : subFile) {
                String absolutePath = f.getAbsolutePath();
                String[] split = absolutePath.split(project);
                tarFile = Paths.get(tarDir, project, split[1]);
                tarFile.toFile().mkdirs();
                Files.copy(f.toPath(), tarFile, StandardCopyOption.REPLACE_EXISTING);
            }
        }
    
        public static List<File> findSubFile(File file, List<String> suffix) {
            List<File> fileList = new ArrayList<>();
            if (file.isDirectory()) {
                for (File listFile : file.listFiles()) {
                    fileList.addAll(findSubFile(listFile, suffix));
                }
            }else {
                if (suffix.contains(file.getName().split("\\.")[1])) {
                    fileList.add(file);
                }
            }
    
            return fileList;
        }
    
    
    评论

报告相同问题?