Go语言学习#7-如何进行目录遍历

=Start=

缘由:

刚好最近在学习Go语言,所以想着看能不能学习一下如何用Go语言进行实现——目录遍历有哪些方法,以及相对的最佳实践,方便以后快速参考改写。

正文:

参考解答:

Go 语言中进行目录遍历的原生方法主要是以下3种:
filepath.Walk()
ioutil.ReadDir()
os.File.Readdir()

性能是越底层越高(上层其实是对底层API的封装)。


filepath.Walk()遍历根目录(root)下的文件树,为树中的每个文件或目录(包括根目录)调用walkFn。所有在访问文件和目录时出现的错误都由walkFn过滤。遍历按词法顺序进行,这使得输出是确定的,但对于非常大的目录来说,遍历可能是低效的。filepath.Walk()不会跟进符号链接。

 

filepath.Walk()会自动遍历子目录,但有些时候我们不希望这样,如果只想看当前目录,或手动指定某几级目录中的文件,这个时候,可以使用 ioutil.ReadDir 进行替代。

 

几个方法封装的一个演示和对比:

 

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/4139.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注