前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >golang filepath (路径工具)

golang filepath (路径工具)

作者头像
copy_left
发布2019-08-23 18:03:21
9980
发布2019-08-23 18:03:21
举报
文章被收录于专栏:方球方球
Abs

获取绝对路径

代码语言:javascript
复制
func Abs(path string) (string, error)
代码语言:javascript
复制
    pathAbs, _ := filepath.Abs("./")
    fmt.Println(pathAbs)
    
    // -> c:\user\...
Rel

返回一个路径的相对路径

代码语言:javascript
复制
func Rel(basepath, targpath string) (string, error)
代码语言:javascript
复制
fmt.Println(filepath.Rel("./file", "../static"))

// -> ../../static  表示从 file指向 static 的相对路径



// 注意;路径内不能包含文件
// 当路径末尾包含文件
fmt.Println(filepath.Rel("./file.js", "../static"))

// -> ../../static 这里将文件作为目录解析
FromSlash

使用 / 替换 为路径分隔符

代码语言:javascript
复制
func FromSlash(path string) string
代码语言:javascript
复制
fmt.Println(filepath.FromSlash("./static.js"))

// -> .\static.js
VolumeName

获取开头卷名

代码语言:javascript
复制
func VolumeName(path string) (v string)
代码语言:javascript
复制
    pathAbs, _ := filepath.Abs("./")

    fmt.Println(filepath.VolumeName(pathAbs))

    // -> C:
Walk

遍历目录树,并执行回调, 类似 map 报错或遍历结束,跳出

代码语言:javascript
复制
func Walk(root string, walkFn WalkFunc) error
代码语言:javascript
复制
var count = 0

func logFileName(path string, info os.FileInfo, err error) error {

    count++
    
    // 返回错误后,编辑将终止
    if count > 10 {
        return errors.New("stop")
    }

    fmt.Printf("\n %d path: %s    fileName: %s", count, path, info.Name())
    return nil

}

func main() {
    filepath.Walk("./", logFileName)
}
WalkFunc

Walk 回调定义

代码语言:javascript
复制
type WalkFunc func(path string, info os.FileInfo, err error) error

其他

同 path.IsAbs

同 path.Split

同 path.Join

同 path.Dir

同 path.Base

同 path.Ext

同 path.Clean

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.08.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Abs
  • Rel
  • FromSlash
  • VolumeName
  • Walk
  • WalkFunc
  • 其他
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档