美文网首页
检测目录含有中文或空格文件

检测目录含有中文或空格文件

作者: Cylee1989 | 来源:发表于2018-07-25 20:32 被阅读0次

    今天心血来潮用Go语言做了个小工具,选择Go主要是因为它可以跨系统生成可执行文件。
    大概做过Android开发的人应该都知道,资源名字是不能含有中文的,否则会构建失败。
    如果是个大型手游项目,那么Resources目录中可能会有上百兆的文件。如果有些文件名是以中文乱码命名的,那么一个一个去翻找是非常耗时的。

    不知大家是否也深有这样的感受? 希望写的这个小工具可以帮助到大家。
    那么废话不多说,代码分享给大家,仅供参考。

    package main
    
    import (
        "errors"
        "flag"
        "fmt"
        "os"
        "path/filepath"
        "regexp"
        "strings"
    )
    
    func main() {
        dir := flag.String("d", "", "This is the directory to be checked.")
        flag.Parse()
    
        err := findFile(*dir)
        if err != nil {
            os.Exit(1)
        }
    }
    
    func findFile(dir string) error {
        return filepath.Walk(dir, func(path string, f os.FileInfo, err error) error {
            if f.IsDir() || strings.Contains(path, ".svn") {
                return nil
            }
    
            checkErr := checkUnicode(f.Name())
            if checkErr != nil {
                fmt.Println(checkErr.Error())
            }
    
            return nil
        })
    }
    
    func checkUnicode(fileName string) error {
        hzRegexp := regexp.MustCompile("^[\u4e00-\u9fa5]$")
        for _, s := range fileName {
            result := hzRegexp.MatchString(string(s))
            if result == true {
                return errors.New("This file contains Chinese unicode")
            }
        }
    
        if strings.Contains(fileName, " ") {
            return errors.New("This file contains Space unicode")
        }
        return nil
    }
    

    使用方法

    1. macos
      ./checkUnicode -d 需要检测的目录路径
    2. windows
      ./checkUnicode.exe -d 需要检测的目录路径

    相关文章

      网友评论

          本文标题:检测目录含有中文或空格文件

          本文链接:https://www.haomeiwen.com/subject/anymmftx.html