当前位置: 首页>>代码示例>>Golang>>正文


Golang RootFileSystem.GetFileOrDirectory方法代码示例

本文整理汇总了Golang中github.com/amkimian/pmfs/fs.RootFileSystem.GetFileOrDirectory方法的典型用法代码示例。如果您正苦于以下问题:Golang RootFileSystem.GetFileOrDirectory方法的具体用法?Golang RootFileSystem.GetFileOrDirectory怎么用?Golang RootFileSystem.GetFileOrDirectory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/amkimian/pmfs/fs.RootFileSystem的用法示例。


在下文中一共展示了RootFileSystem.GetFileOrDirectory方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: blockAddFunc

// Add a new block to a structured file. The name of the block
// is in the parameter "block", the content is as before in "data"
func blockAddFunc(w http.ResponseWriter, r *http.Request, filesys *fs.RootFileSystem) {
	fileNode, dirNode, err := filesys.GetFileOrDirectory(r.URL.Path, true)
	if err != nil {
		writeError(w, err)
	} else if dirNode != nil {
		writeError(w, errors.New("Cannot add to a directory"))
	} else {
		// We have a filenode...
		filesys.SaveNewBlock(r.URL.Path, fileNode, r.Form["block"][0], []byte(r.Form["data"][0]), true)
		getFunc(w, r, filesys)
	}
}
开发者ID:amkimian,项目名称:pmfs,代码行数:14,代码来源:func.go

示例2: attrAddFunc

func attrAddFunc(w http.ResponseWriter, r *http.Request, filesys *fs.RootFileSystem) {
	fileNode, dirNode, err := filesys.GetFileOrDirectory(r.URL.Path, false)
	if err != nil {
		writeError(w, err)
	} else if dirNode != nil {
		dirNode.Attributes[r.Form["key"][0]] = r.Form["value"][0]
		filesys.ChangeCache.SaveDirectoryNode(dirNode)
		statFunc(w, r, filesys)
	} else if fileNode != nil {
		fileNode.Attributes[r.Form["key"][0]] = r.Form["value"][0]
		filesys.ChangeCache.SaveFileNode(fileNode)
		statFunc(w, r, filesys)
	}
}
开发者ID:amkimian,项目名称:pmfs,代码行数:14,代码来源:func.go

示例3: statFunc

func statFunc(w http.ResponseWriter, r *http.Request, filesys *fs.RootFileSystem) {
	fileNode, dirNode, err := filesys.GetFileOrDirectory(r.URL.Path, false)
	if err != nil {
		writeError(w, err)
	} else if dirNode != nil {
		var b []byte
		b, err = json.MarshalIndent(dirNode, "", "    ")
		fmt.Fprintf(w, "%v", string(b))
	} else if fileNode != nil {
		var b []byte
		b, err = json.MarshalIndent(fileNode, "", "    ")
		fmt.Fprintf(w, "%v", string(b))
	}
}
开发者ID:amkimian,项目名称:pmfs,代码行数:14,代码来源:func.go

示例4: blockGetFunc

// The block get Func retrieves a block given a range
// Parameters are
// start (optional) the start block (inclusive)
// end (optional) the end block (inclusive)
// tag (optional) the tag of the version to do this for
// Basically the function retrieves the route given the tag version (or default root)
// and then filters the block names given the start and end.
// The return data is a list structure containing the key (block name) and the value (the value of the block)
func blockGetFunc(w http.ResponseWriter, r *http.Request, filesys *fs.RootFileSystem) {
	fileNode, dirNode, err := filesys.GetFileOrDirectory(r.URL.Path, false)
	if err != nil {
		writeError(w, err)
	} else if dirNode != nil {
		writeError(w, errors.New("Cannot do this to a directory"))
	} else {
		// We have a filenode...
		blockStructure, err := filesys.GetBlock(fileNode, getFormValue(r, "tag", ""), getFormValue(r, "start", ""), getFormValue(r, "end", ""))
		if err != nil {
			writeError(w, err)
		} else {
			var b []byte
			b, err = json.MarshalIndent(blockStructure, "", "    ")
			fmt.Fprintf(w, "%v", string(b))
		}
	}
}
开发者ID:amkimian,项目名称:pmfs,代码行数:26,代码来源:func.go

示例5: getFunc

func getFunc(w http.ResponseWriter, r *http.Request, filesys *fs.RootFileSystem) {
	// This can be two things
	// 1 get of a file, so dump the contents
	// 2 get of a folder, so construct some nice json

	fileNode, dirNode, err := filesys.GetFileOrDirectory(r.URL.Path, false)

	if err != nil {
		writeError(w, err)
	} else {
		w.WriteHeader(http.StatusOK)
		if fileNode != nil {
			var x []byte
			x, err = filesys.ReadFile(r.URL.Path)
			fmt.Fprintf(w, "%v", string(x))
		} else {
			// Need to get file directory structure as a json object
			dirStructure := getDirStructure(r.URL.Path, dirNode, filesys)
			var b []byte
			b, err = json.MarshalIndent(dirStructure, "", "    ")
			fmt.Fprintf(w, "%v", string(b))
		}
	}
}
开发者ID:amkimian,项目名称:pmfs,代码行数:24,代码来源:func.go


注:本文中的github.com/amkimian/pmfs/fs.RootFileSystem.GetFileOrDirectory方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。