Chinaunix首页 | 论坛 | 博客
  • 博客访问: 307453
  • 博文数量: 214
  • 博客积分: 4258
  • 博客等级: 上校
  • 技术积分: 2021
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 09:16
个人简介

http://blog.csdn.net/ly21st http://ly21st.blog.chinaunix.net

文章分类

全部博文(214)

文章存档

2018年(16)

2015年(1)

2014年(2)

2012年(22)

2011年(173)

分类: C/C++

2018-01-29 21:02:49

把完整路径的目录与文件名分割

点击(此处)折叠或打开

  1. // path_my project main.go
  2. package main

  3. import (
  4.     "fmt"
  5.     "path"
  6. )

  7. func ExampleBase() {
  8.     fmt.Println(path.Base("/a/b"))
  9.     fmt.Println(path.Base("/"))
  10.     fmt.Println(path.Base(""))
  11.     // Output:
  12.     // b
  13.     // /
  14.     // .
  15. }

  16. func ExampleClean() {
  17.     paths := []string{
  18.         "a/c",
  19.         "a//c",
  20.         "a/c/.",
  21.         "a/c/b/..",
  22.         "/../a/c",
  23.         "/../a/b/../././/c",
  24.         "",
  25.     }

  26.     for _, p := range paths {
  27.         fmt.Printf("Clean(%q) = %q\n", p, path.Clean(p))
  28.     }

  29.     // Output:
  30.     // Clean("a/c") = "a/c"
  31.     // Clean("a//c") = "a/c"
  32.     // Clean("a/c/.") = "a/c"
  33.     // Clean("a/c/b/..") = "a/c"
  34.     // Clean("/../a/c") = "/a/c"
  35.     // Clean("/../a/b/../././/c") = "/a/c"
  36.     // Clean("") = "."
  37. }

  38. func ExampleDir() {
  39.     fmt.Println(path.Dir("/a/b/c"))
  40.     fmt.Println(path.Dir("a/b/c"))
  41.     fmt.Println(path.Dir("/"))
  42.     fmt.Println(path.Dir(""))
  43.     // Output:
  44.     // /a/b
  45.     // a/b
  46.     // /
  47.     // .
  48. }

  49. func ExampleExt() {
  50.     fmt.Println(path.Ext("/a/b/c/bar.css"))
  51.     fmt.Println(path.Ext("/"))
  52.     fmt.Println(path.Ext(""))
  53.     // Output:
  54.     // .css
  55.     //
  56.     //
  57. }

  58. func ExampleIsAbs() {
  59.     fmt.Println(path.IsAbs("/dev/null"))
  60.     // Output: true
  61. }

  62. func ExampleJoin() {
  63.     fmt.Println(path.Join("a", "b", "c"))
  64.     fmt.Println(path.Join("a", "b/c"))
  65.     fmt.Println(path.Join("a/b", "c"))
  66.     fmt.Println(path.Join("", ""))
  67.     fmt.Println(path.Join("a", ""))
  68.     fmt.Println(path.Join("", "a"))
  69.     // Output:
  70.     // a/b/c
  71.     // a/b/c
  72.     // a/b/c
  73.     //
  74.     // a
  75.     // a
  76. }

  77. func ExampleSplit() {
  78.     fmt.Println(path.Split("static/myfile.css"))
  79.     fmt.Println(path.Split("myfile.css"))
  80.     fmt.Println(path.Split(""))
  81.     // Output:
  82.     // static/ myfile.css
  83.     // myfile.css
  84.     //
  85. }

  86. func main() {
  87.     ExampleBase()
  88.     ExampleClean()
  89.     ExampleDir()
  90.     ExampleExt()
  91.     ExampleIsAbs()
  92.     ExampleJoin()
  93.     ExampleSplit()
  94. }
输出结果:
[root@hadoop1 path]# ./path_my 
b
/
.
Clean("a/c") = "a/c"
Clean("a//c") = "a/c"
Clean("a/c/.") = "a/c"
Clean("a/c/b/..") = "a/c"
Clean("/../a/c") = "/a/c"
Clean("/../a/b/../././/c") = "/a/c"
Clean("") = "."
/a/b
a/b
/
.
.css

true
a/b/c
a/b/c
a/b/c
a
a
static/ myfile.css
 myfile.css
 
/static/ myfile.css
helo/static/ myfile.css
/helo/static/ myfile.css
[root@hadoop1 path]#


阅读(358) | 评论(0) | 转发(0) |
0

上一篇:os操作

下一篇:正则匹配例子

给主人留下些什么吧!~~