collecter里面对windows环境中,File path 的反斜杠处理

来源:6-8 实战:完成映射表类名的收集与打印【收集目标类】

qq_夜_71

2023-07-27

    void collectFromDir(File file) {
        if (file == null || !file.exists()) return
        if (file.isDirectory()) {
            file.listFiles().each {
                collectFromDir(it)
            }
            return
        }
        String absolutePath = file.absolutePath.replaceAll("\\\\", "/")
        if (absolutePath.contains(PACKAGE_NAME) && file.name.startsWith(CLASS_NAME_PREFIX) && file.name.endsWith(CLASS_FILE_SUFFIX)) {
            def className = file.name.replace(CLASS_FILE_SUFFIX, "")
            routerMappings.add(className)
        }
    }

windows里面,路径的分隔符是\ ,所以需要做路径一个替换,在这里提醒一下后面的同学。
String absolutePath = file.absolutePath.replaceAll("\\", “/”)

写回答

1回答

allenfeng

2023-08-11

很好的实践!适配不同操作系统,也可考虑直接采用 File.separator

0
0

Android 应用程序构建实战+原理精讲

深度掌握 Gradle 使用,系统性学习 Android 应用构建知识

461 学习 · 116 问题

查看课程