Documentation
¶
Index ¶
- Variables
- func Clean(uni_name string) (string, error)
- func FromFSPath(fs_name string) (string, error)
- func FromOSPath(os_name string) (string, error)
- func Glob(fsys fs.FS, pattern string) ([]string, error)
- func Join(names ...string) (string, error)
- func MustClean(uni_name string) string
- func MustJoin(names ...string) string
- func Open(fsys fs.FS, name string) (fs.File, error)
- func ReadDir(fsys fs.FS, name string) ([]fs.DirEntry, error)
- func ReadFile(fsys fs.FS, name string) ([]byte, error)
- func Stat(fsys fs.FS, name string) (fs.FileInfo, error)
- func Sub(fsys fs.FS, name string) (fs.FS, error)
- func ToFSPath(uni_name string) (string, error)
- func ToFSPaths(uni_names []string) ([]string, error)
- func ToOSPath(uni_name string) (string, error)
- func ToOSPaths(uni_names []string) ([]string, error)
- func ValidPath(uni_name string) bool
- func ValidSubPath(uni_name string) bool
- type UniPath
- func (up UniPath) FSPath() string
- func (up UniPath) Glob(fsys fs.FS) ([]UniPath, error)
- func (up UniPath) IsZero() bool
- func (up UniPath) Join(names ...string) (UniPath, error)
- func (up UniPath) MustJoin(names ...string) UniPath
- func (up UniPath) OSPath() string
- func (up UniPath) Open(fsys fs.FS) (fs.File, error)
- func (up UniPath) ReadDir(fsys fs.FS) ([]fs.DirEntry, error)
- func (up UniPath) ReadFile(fsys fs.FS) ([]byte, error)
- func (up UniPath) Stat(fsys fs.FS) (fs.FileInfo, error)
- func (up UniPath) String() string
- func (up UniPath) Sub(fsys fs.FS) (fs.FS, error)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrInvalid = errors.New("invalid argument")
View Source
var ErrUncPathSupported = errors.New("UNC path is not supported.")
View Source
var Zero = UniPath{/* contains filtered or unexported fields */}
Functions ¶
func Clean ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { fmt.Println(unifs.MustClean("/C:/foo/../bar/")) fmt.Println(unifs.MustClean("/foo/../bar/")) fmt.Println(unifs.MustClean("/foo/../../bar/")) }
Output: /C:/bar /bar /bar
func FromFSPath ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { var name string var err error name, err = unifs.FromFSPath(".") fmt.Println(name, err == nil) name, err = unifs.FromFSPath("hoge") fmt.Println(name, err == nil) name, err = unifs.FromFSPath("hoge/fuga") fmt.Println(name, err == nil) name, err = unifs.FromFSPath("C:") fmt.Println(name, err == nil) name, err = unifs.FromFSPath("C:/hoge") fmt.Println(name, err == nil) }
Output: / true /hoge true /hoge/fuga true /C: true /C:/hoge true
func FromOSPath ¶
func Glob ¶
Example ¶
ups, err := unifs.Glob(testfs, "/test/*.txt") if err != nil { return } for _, up := range ups { fmt.Println(up) }
Output: /test/sample.txt /test/dummy.txt
func Join ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { fmt.Println(unifs.MustJoin("/C:/foo/", "../bar")) fmt.Println(unifs.MustJoin("/foo/", "../bar/")) fmt.Println(unifs.MustJoin("/foo/", "../../bar")) }
Output: /C:/bar /bar /bar
func Open ¶
Example ¶
var err error _, err = unifs.Open(testfs, "/test/sample.txt") fmt.Println(err == nil)
Output: true
func ReadDir ¶
Example ¶
var err error _, err = unifs.ReadDir(testfs, "/") fmt.Println(err == nil) _, err = unifs.ReadDir(testfs, "/test") fmt.Println(err == nil)
Output: true true
func ReadFile ¶
Example ¶
var err error _, err = unifs.ReadFile(testfs, "/test/sample.txt") fmt.Println(err == nil)
Output: true
func Stat ¶
Example ¶
var err error _, err = unifs.Stat(testfs, "/test/sample.txt") fmt.Println(err == nil)
Output: true
func Sub ¶
Example ¶
var err error var subfs fs.FS subfs, err = unifs.Sub(testfs, "/test") fmt.Println(err == nil) _, err = unifs.Open(subfs, "/sample.txt") fmt.Println(err == nil)
Output: true true
func ToFSPath ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { fmt.Println(unifs.ToFSPath("/C:")) fmt.Println(unifs.ToFSPath("/C:/")) fmt.Println(unifs.ToFSPath("/C:/hoge")) fmt.Println(unifs.ToFSPath("/C:/hoge/")) }
Output: C: <nil> C: <nil> C:/hoge <nil> C:/hoge <nil>
func ToOSPath ¶
Example (Unix) ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { var name string var err error name, err = unifs.ToOSPath("/C:") fmt.Println(err == nil, name) name, err = unifs.ToOSPath("/C:/") fmt.Println(err == nil, name) name, err = unifs.ToOSPath("/C:/hoge") fmt.Println(err == nil, name) name, err = unifs.ToOSPath("/C:/hoge/") fmt.Println(err == nil, name) }
Output: true /C: true /C:/ true /C:/hoge true /C:/hoge/
func ValidPath ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { fmt.Println(unifs.ValidPath("/C:/")) fmt.Println(unifs.ValidPath("/C:/hoge")) fmt.Println(unifs.ValidPath("/")) fmt.Println(unifs.ValidPath("")) fmt.Println(unifs.ValidPath("hoge/fuga")) fmt.Println(unifs.ValidPath("../hoge")) }
Output: true true true false false false
func ValidSubPath ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { fmt.Println(unifs.ValidSubPath("hoge")) fmt.Println(unifs.ValidSubPath("hoge/fuga")) fmt.Println(unifs.ValidSubPath("../hoge")) fmt.Println(unifs.ValidSubPath(`hoge\fuga`)) fmt.Println(unifs.ValidSubPath("hoge\x00")) }
Output: true true true false false
Types ¶
type UniPath ¶
type UniPath struct {
// contains filtered or unexported fields
}
func MustNewFromFSPath ¶
func MustNewFromOSPath ¶
func New ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { var up unifs.UniPath var err error up, err = unifs.New("hoge") fmt.Println(up, err == nil) up, err = unifs.New("/") fmt.Println(up, err == nil) up, err = unifs.New("/hoge") fmt.Println(up, err == nil) up, err = unifs.New("/hoge/fuga/") fmt.Println(up, err == nil) up, err = unifs.New("/C:") fmt.Println(up, err == nil) up, err = unifs.New("/C:/hoge") fmt.Println(up, err == nil) }
Output: false / true /hoge true /hoge/fuga true /C: true /C:/hoge true
func NewFromFSPath ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { var up unifs.UniPath var err error up, err = unifs.NewFromFSPath(".") fmt.Println(up, err == nil) up, err = unifs.NewFromFSPath("hoge") fmt.Println(up, err == nil) up, err = unifs.NewFromFSPath("hoge/fuga") fmt.Println(up, err == nil) up, err = unifs.NewFromFSPath("/") fmt.Println(up, err == nil) up, err = unifs.NewFromFSPath("/hoge") fmt.Println(up, err == nil) up, err = unifs.NewFromFSPath("hoge/") fmt.Println(up, err == nil) }
Output: / true /hoge true /hoge/fuga true false false false
func NewFromOSPath ¶
Example (Unix) ¶
package main import ( "fmt" "os" "github.com/l4go/unifs" ) func main() { var up unifs.UniPath var err error os.Chdir("/usr") up, err = unifs.NewFromOSPath(".") fmt.Println(up, err == nil) up, err = unifs.NewFromOSPath("hoge") fmt.Println(up, err == nil) up, err = unifs.NewFromOSPath("hoge/fuga") fmt.Println(up, err == nil) up, err = unifs.NewFromOSPath("/") fmt.Println(up, err == nil) up, err = unifs.NewFromOSPath("/hoge") fmt.Println(up, err == nil) }
Output: /usr true /usr/hoge true /usr/hoge/fuga true / true /hoge true
func (UniPath) Join ¶
Example ¶
package main import ( "fmt" "github.com/l4go/unifs" ) func main() { var err error var up, tp unifs.UniPath up, err = unifs.New("/test") fmt.Println(err == nil) tp, err = up.Join("sample.txt") fmt.Println(tp, err == nil) tp, err = up.Join("hoge/sample.txt") fmt.Println(tp, err == nil) tp, err = up.Join(`hoge\sample.txt`) fmt.Println(tp, err == nil) tp, err = up.Join("../sample.txt") fmt.Println(tp, err == nil) tp, err = up.Join("../../sample.txt") fmt.Println(tp, err == nil) }
Output: true /test/sample.txt true /test/hoge/sample.txt true false /sample.txt true /sample.txt true
func (UniPath) Open ¶
Example ¶
var err error var up unifs.UniPath up, err = unifs.New("/test/sample.txt") fmt.Println(err == nil) _, err = up.Open(testfs) fmt.Println(err == nil)
Output: true true
func (UniPath) ReadDir ¶
Example ¶
var err error var up unifs.UniPath up, err = unifs.New("/") fmt.Println(err == nil) _, err = up.ReadDir(testfs) fmt.Println(err == nil) up, err = unifs.New("/test") fmt.Println(err == nil) _, err = up.ReadDir(testfs) fmt.Println(err == nil) up, err = unifs.New("/hoge") fmt.Println(err == nil) _, err = up.ReadDir(testfs) fmt.Println(err == nil)
Output: true true true true true false
func (UniPath) ReadFile ¶
Example ¶
var err error var up unifs.UniPath up, err = unifs.New("/test/sample.txt") fmt.Println(err == nil) _, err = up.ReadFile(testfs) fmt.Println(err == nil)
Output: true true
func (UniPath) Stat ¶
Example ¶
var err error var up unifs.UniPath up, err = unifs.New("/test/sample.txt") fmt.Println(err == nil) _, err = up.Stat(testfs) fmt.Println(err == nil)
Output: true true
Click to show internal directories.
Click to hide internal directories.