加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

文件系统在Golang中扫描

发布时间:2020-12-16 18:11:32 所属栏目:大数据 来源:网络整理
导读:我需要写一个函数,当给定一个文件夹的路径 扫描以该文件夹为根的文件。 然后我需要在该文件夹显示目录结构。 我知道如何做2(我将使用jstree在浏览器中显示它)。 请帮我第1部分,像什么/哪里开始写这样的 函数。 编辑:足够的人仍然打这个答案,我想我会更新
>我需要写一个函数,当给定一个文件夹的路径
扫描以该文件夹为根的文件。
>然后我需要在该文件夹显示目录结构。

我知道如何做2(我将使用jstree在浏览器中显示它)。

请帮我第1部分,像什么/哪里开始写这样的
函数。

编辑:足够的人仍然打这个答案,我想我会更新它的Go1 API。这是一个工作实例 filepath.Walk().原来是下面。
package main

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

func visit(path string,f os.FileInfo,err error) error {
  fmt.Printf("Visited: %sn",path)
  return nil
} 


func main() {
  flag.Parse()
  root := flag.Arg(0)
  err := filepath.Walk(root,visit)
  fmt.Printf("filepath.Walk() returned %vn",err)
}

请注意,filepath.Walk以递归方式遍历目录树。

这是一个示例运行:

$ mkdir -p dir1/dir2
$ touch dir1/file1 dir1/dir2/file2
$ go run walk.go dir1
Visited: dir1
Visited: dir1/dir2
Visited: dir1/dir2/file2
Visited: dir1/file1
filepath.Walk() returned <nil>

原始答案跟随:步行文件路径的接口已经更改为从week.2011-09-16,请参阅http://groups.google.com/group/golang-nuts/msg/e304dd9cf196a218.下面的代码将不适用于发布版本的GO在不久的将来。

实际上在标准库中有一个函数只是为了这个:filepath.Walk。

package main

import (
    "path/filepath"
    "os"
    "flag"
)

type visitor int

// THIS CODE NO LONGER WORKS,PLEASE SEE ABOVE
func (v visitor) VisitDir(path string,f *os.FileInfo) bool {
    println(path)
    return true
} 

func (v visitor) VisitFile(path string,f *os.FileInfo) {
    println(path)
}

func main() {
    root := flag.Arg(0)
    filepath.Walk(root,visitor(0),nil)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读