文件系统在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) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |