本文整理汇总了Golang中github.com/hanwen/go-fuse/fuse/pathfs.FileSystem.OpenDir方法的典型用法代码示例。如果您正苦于以下问题:Golang FileSystem.OpenDir方法的具体用法?Golang FileSystem.OpenDir怎么用?Golang FileSystem.OpenDir使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/hanwen/go-fuse/fuse/pathfs.FileSystem
的用法示例。
在下文中一共展示了FileSystem.OpenDir方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: readDir
func readDir(fs pathfs.FileSystem, name string) *dirResponse {
origStream, code := fs.OpenDir(name, nil)
r := &dirResponse{nil, code}
if !code.Ok() {
return r
}
r.entries = origStream
return r
}
示例2: findDir
func findDir(fs pathfs.FileSystem, path string, delimiter string) []string {
ents, _ := fs.OpenDir(path, nil)
ret := make([]string, 0)
for _, ent := range ents {
child := path + delimiter + ent.Name
attr, _ := fs.GetAttr(child, nil)
if attr.Mode&fuse.S_IFDIR != 0 {
ret = append(ret, child+"/")
ret = append(ret, findDir(fs, child, "/")...)
} else {
ret = append(ret, child)
}
}
return ret
}
示例3: TestDirError
func (s *fuseTestSuite) TestDirError() {
datasetName := "TestDirError"
str := spec.CreateValueSpecString("ldb", s.LdbDir, datasetName)
var testfs pathfs.FileSystem
start(str, func(fs pathfs.FileSystem) { testfs = fs })
code := testfs.Mkdir("foo/bar", 0755, nil)
assert.Equal(s.T(), fuse.ENOENT, code)
_, code = testfs.Create("foo", uint32(os.O_CREATE)|uint32(os.O_WRONLY), 0644, nil)
assert.Equal(s.T(), fuse.OK, code)
code = testfs.Mkdir("foo/bar", 0755, nil)
assert.Equal(s.T(), fuse.ENOTDIR, code)
_, code = testfs.OpenDir("foo", nil)
assert.Equal(s.T(), fuse.ENOTDIR, code)
}
示例4: newDirnameMap
// newDirnameMap reads the contents of the given directory. On error,
// returns a nil map. This forces reloads in the dirCache until we
// succeed.
func newDirnameMap(fs pathfs.FileSystem, dir string) map[string]bool {
stream, code := fs.OpenDir(dir, nil)
if code == fuse.ENOENT {
// The directory not existing is not an error.
return map[string]bool{}
}
if !code.Ok() {
return nil
}
result := make(map[string]bool)
for _, e := range stream {
if e.Mode&fuse.S_IFREG != 0 {
result[e.Name] = true
}
}
return result
}