美文网首页我的专题
golang的filepath包函数示例

golang的filepath包函数示例

作者: TEAA | 来源:发表于2016-10-10 16:49 被阅读0次

func Abs(path string) (string, error)

package main
import (
    "path/filepath"
    "os"
    "fmt"
)

func main() {
    //
    pName := os.Args[0]
    absName, err := filepath.Abs(pName)
    if err != nil{
        fmt.Println(err)
    }

    fmt.Println(absName)
}

func Base(path string) string

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    baseName := filepath.Base("/a/b/c/e.txt")
    fmt.Println(baseName)
}

func Clean(path string) string

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    p := "../..//././//a/b/c.txt"
    pc := filepath.Clean(p)
    fmt.Println(pc)
}

func Dir(path string) string

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    d := filepath.Dir("/a/b/c/d.txt")
    fmt.Println(d)
}

func EvalSymlinks(path string) (string, error)

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    e, _:= filepath.EvalSymlinks("/Users/hyhu/SourcePrj/mysourceprj")
    fmt.Println(e)
}

func Ext(path string) string

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    e := filepath.Ext("/Users/1.txt")
    fmt.Println(e)
}

func FromSlash(path string) string

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    //windows下有效果
    r := filepath.FromSlash("/a//b/c/d.txt")
    fmt.Println(r)
}

func Glob(pattern string) (matches []string, err error)

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    m,_ := filepath.Glob("/usr/*")
    fmt.Println(m)
}

func HasPrefix(p, prefix string) bool

Go1.7中已经废弃使用

func IsAbs(path string) bool

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    b := filepath.IsAbs("/a/b/c/d.txt")
    fmt.Println(b)
    b = filepath.IsAbs("d.txt")
    fmt.Println(b)
}

func Join(elem ...string) string

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    fmt.Println("On Unix:")
    fmt.Println(filepath.Join("a", "b", "c"))
    fmt.Println(filepath.Join("a", "b/c"))
    fmt.Println(filepath.Join("a/b", "c"))
    fmt.Println(filepath.Join("a/b", "/c"))
}

func Match(pattern, name string) (matched bool, err error)

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    //windows下有效果
    m,_ := filepath. Match("/usr/*", "/usr/local")
    fmt.Println(m)
}

func Rel(basepath, targpath string) (string, error)

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    paths := []string{
        "/a/b/c",
        "/b/c",
        "./b/c",
    }
    base := "/a"

    fmt.Println("On Unix:")
    for _, p := range paths {
        rel, err := filepath.Rel(base, p)
        fmt.Printf("%q: %q %v\n", p, rel, err)
    }

}

func Split(path string) (dir, file string)

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    paths := []string{
        "/home/arnie/amelia.jpg",
        "/mnt/photos/",
        "rabbit.jpg",
        "/usr/local//go",
    }
    fmt.Println("On Unix:")
    for _, p := range paths {
        dir, file := filepath.Split(p)
        fmt.Printf("input: %q\n\tdir: %q\n\tfile: %q\n", p, dir, file)
    }
}

func SplitList(path string) []string

package main

import (
    "fmt"
    "path/filepath"
)

func main() {
    fmt.Println("On Unix:", filepath.SplitList("/a/b/c:/usr/bin"))
}

func ToSlash(path string) string

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    //windows下有效果
    r := filepath.ToSlash("\\a\\b\\c/d.txt")
    fmt.Println(r)
}

func VolumeName(path string) string

windows平台下
C:\foo\bar 对应的结果 C:

\\host\share\foo 对应的结果 \\host\share

package main
import (
    "path/filepath"
    "fmt"
)

func main() {
    v := filepath.VolumeName("C:\foo\bar")
    fmt.Println(v)
    v = filepath.VolumeName(`\\host\share\foo"`)
    fmt.Println(v)
}

func Walk(root string, walkFn WalkFunc) error

同下

type WalkFunc

package main
import (
    "path/filepath"
    "fmt"
    "os"
)

func MyWalkFunc (path string, info os.FileInfo, err error) error{
    var e error

    fmt.Println(path, info.Name(), info.Size(), info.Mode(), info.ModTime())

    return e
}

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

相关文章

  • golang的filepath包函数示例

    func Abs(path string) (string, error) func Base(path stri...

  • Golang学习 - path/filepath 包

    filepath 中的函数会根据不同平台做不同的处理,比如路径分隔符、卷名等。 路径分隔符转换: const (S...

  • golang fmt格式“占位符”

    golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 # 定义示例类型和变...

  • Go-fmt 占位符

    golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 定义示例类型和变量 ...

  • Go中的函数

    在Golang中函数有包内的函数,有包外的函数,还有闭包函数(匿名函数) 包内函数是以小写字母开头的,包外函数是以...

  • 函数对象和闭包

    函数对象和闭包 一) 函数对象 示例: 二)函数嵌套 三)闭包函数

  • Golang筑基 ——函数

    定义 golang函数的定义: 特点 在golang中至少有一个main函数每个包只能有一个main函数golan...

  • APUE 进程环境

    本文使用golang的syscall,os,golang.org/x/sys/unix包 1.main函数 mai...

  • golang 文件操作

    golang 文件操作 获取文件大小 "path/filepath" 读取文件 import ("fmt""os"...

  • golang filepath (路径工具)

    Abs 获取绝对路径 Rel 返回一个路径的相对路径 FromSlash 使用 / 替换 为路径分隔符 Volum...

网友评论

    本文标题:golang的filepath包函数示例

    本文链接:https://www.haomeiwen.com/subject/bghvyttx.html