Golang语言情怀--第107期 go语言实现遍历目录,及查找特定的文件类型

2023-10-30 16:06:39 浏览数 (2)

最近项目有一个需求,产品配置好excel后,需要写入数据库及图片资源上传到OSS,

读取excel的数据

写入数据库

通过读取到的数据,如果涉及到图片等资源,需要上传到OSS

我们先看下一个代码实例,读取文件的:

代码语言:javascript复制
 package main

  import (
      "fmt"
      "os"
      "path/filepath"
      "strings"
 )

 var (
     ostype = os.Getenv("GOOS") // 获取系统类型
 )

 var listfile []string //获取文件列表

 func Listfunc(path string, f os.FileInfo, err error) error {
     var strRet string
     strRet, _ = os.Getwd()
     //ostype := os.Getenv("GOOS") // windows, linux

     if ostype == "windows" {
         strRet  = "\"
     } else if ostype == "linux" {
         strRet  = "/"
    }

     if f == nil {
         return err
     }
     if f.IsDir() {
         return nil
     }

     strRet  = path //  "rn"
     //用strings.HasSuffix(src, suffix)//判断src中是否包含 suffix结尾
     ok := strings.HasSuffix(strRet, ".go")
     if ok {

         listfile = append(listfile, strRet) //将目录push到listfile []string中
     }
     fmt.Println(strRet) //list the file

     return nil
 }

 func getFileList(path string) string {
     err := filepath.Walk(path, Listfunc) //

     if err != nil {
         fmt.Printf("filepath.Walk() returned %vn", err)
     }

     return " "
 }

 func ListFileFunc(p []string) {
     for index, value := range p {
         fmt.Println("Index = ", index, "Value = ", value)
     }
 }

 func main() {
     var listpath string
     fmt.Scanf("%s", &listpath)
     getFileList(listpath)
     ListFileFunc(listfile)

 }

上面例子是来自网上,主要是读取特定.go文件。

项目中的结构如下:

config:配置文件,excel文件

db数据库的操作

excel关于excel的读写

file关于资源文件读取

img存放图片资源

oss关于oss上传操作

rescource关于读取配置文件的逻辑

0 人点赞