丶流年 ڡ 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;
        }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!