专栏首页方球golang filepath (路径工具)

golang filepath (路径工具)

Abs

获取绝对路径

func Abs(path string) (string, error)
    pathAbs, _ := filepath.Abs("./")
    fmt.Println(pathAbs)
    
    // -> c:\user\...

Rel

返回一个路径的相对路径

func Rel(basepath, targpath string) (string, error)
fmt.Println(filepath.Rel("./file", "../static"))

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



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

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

FromSlash

使用 / 替换 为路径分隔符

func FromSlash(path string) string
fmt.Println(filepath.FromSlash("./static.js"))

// -> .\static.js

VolumeName

获取开头卷名

func VolumeName(path string) (v string)
    pathAbs, _ := filepath.Abs("./")

    fmt.Println(filepath.VolumeName(pathAbs))

    // -> C:

Walk

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

func Walk(root string, walkFn WalkFunc) error
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 回调定义

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • golang path 路径包

    copy_left
  • golang flag 命令行参数解析

    copy_left
  • golang url 链接地址解析包

    copy_left
  • 决策树

    决策树是一种特殊的树形结构,一般由节点和有向边组成。其中,节点表示特征、属性或者一个类。而有向边包含有判断条件。如图所示,决策树从根节点开始延伸,经过不同的判断...

    海天一树
  • .net服务器端发起请求封装

    用户1055830
  • python彩色文字输出

    py3study
  • centos无法启动之fstab

    超蛋lhy
  • JenkinsPipeline插件的十大最佳实践

    Jenkins是卓越的自动化工具之一。Jenkins可通过使用插件进行设计扩展。插件使Jenkins拥有极大的灵活性,可以在各种平台上自动执行各种流程。Jenk...

    泽阳
  • leetcode-917-仅仅反转字母

    给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。

    chenjx85
  • 云+社区技术沙龙第22期回顾,围观大牛分享的干货!(内附PPT)

    2019年5月25日,由云+社区主办的第22期云+技术沙龙-互联网架构,在深圳腾讯滨海大厦举行,本期沙龙邀请了腾讯的技术专家分享关于技术架构、落地实践案例、无服...

    云加社区技术沙龙

扫码关注云+社区

领取腾讯云代金券