如何获取目录范围内文件的绝对路径?

时间:2019-06-03 02:15:01

标签: linux algorithm go

在GO上实现了日志解析器,此刻程序以这种格式示例/ var / log / 2019 / 2019-05 / 2019-05-27 /接受路径参数,仅解析当前文件夹并返回完整目录文件路径,我想知道以及如何以--datastart / var / log / 2019 / 2019-05 / 2019-05-01 / --dataend / var / log /的形式实现文件的解析器路径2019 / 2019-05 / 2019-05-31 /,以便解析一定范围的日期,这些日期分为多个文件夹。

示例目录树

2019
|
-...
-2019-04
       |
       -2019-04-01
       |
       -....
       -2019-03-30
-2019-05
       |
       -2019-05-01
       |
       ...
       |
       -2019-05-31
-...

我获取目录文件的功能:

func WalkFile(done <- chan struct{},root string)(<-chan string,<-chan error){

  paths := make(chan string)
  errc  := make(chan error,1)

  go func() {

    defer close(paths)
    errc <- filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
      if err != nil{
        return err
      }
      if !info.Mode().IsRegular(){
        return nil

      }

      select {
      case paths <- path:
      case <-done:
        return nil


      }
      return nil
    })

  }()

  return paths,errc
}

0 个答案:

没有答案