go 判断文件或目录是否存在

使用os包中的FileInfo接口提

type FileInfo
func Stat(name string) (fi FileInfo, err error)
func Lstat(name string) (fi FileInfo, err error)

参考代码

// 判断文件是否存在
func IsExist(fileAddr string)(bool){
        // 读取文件信息,判断文件是否存在
        _,err := os.Stat(fileAddr)
        if err!=nil{
                log.Println(err)
                if os.IsExist(err){  // 根据错误类型进行判断
                        return true
                }
                return false
        }
        return true
}

参考代码

// 判断目录是否存在
func IsDir(fileAddr string)bool{
        s,err:=os.Stat(fileAddr)
        if err!=nil{
                log.Println(err)
                return false
        }
        return s.IsDir()
}

go 按行读取文件

使用bufio包

func readLine(f *os.File)error{
        defer wg.Done()
        scanner := bufio.NewScanner(f)  // 默认是按行读取
        for scanner.Scan(){
                fmt.Println(f.Name(),scanner.Text())
                CreateFrame("",f.Name(),scanner.Text())
        }
        if err:=scanner.Err();err!=nil{
                log.Println("reading standard input:",err)
                return errors.New("reading standard input:"+err.Error())
        }
        return nil
}