一个用于在文件系统或网络中进行文件/io/bytes处理/解析的实用库

78 阅读1分钟

浏览器

一个用于在文件系统或网络中进行文件/io/bytes处理/解析的实用程序库:

  1. 这些功能对于一个非服务器/本地运行的应用程序来说是非常常见的。虽然看起来相当容易,但几乎所有的边缘情况都需要细心地处理。
  2. 使用一个库包而不是自定义段,可以节省多余的测试/调试。

特征列表

  • 为给定路径生成解析树
    • 分别列出文件/文件夹
    • 分别获取隐藏的文件/文件夹
    • 保留目录和文件的嵌套顺序
    • 控制递归级别
    • 通过自定义函数来过滤掉文件和目录
    • 包括StdIn,如果有效的话
  • 编码
    • json到
      • 文件
      • yaml
    • yaml到
      • json
      • 文件
    • 文件来
      • json
      • yaml
  • IO操作
    • 复制多个文件到单个文件
    • 克隆文件
    • 传递一个回调,在文件的每一行上执行。
    • bashdirname &basedir 函数

如何使用

使用列表器

tree := list.Read(&[]string{"."}, 2)
//tree.SkipHiddenDirs = true
e := tree.UpdateFiles()
tree.UpdateStdinStatus()

if e != nil {
    log.Fatal(e)
}
log.Println(tree.IsNestedDir)

使用阅读器

for _,path := range tree.FilePaths{
	if strings.HasSuffix(path,"html") || strings.HasSuffix(path,"htm"){
		err := reader.CloneFile(path, path+".bak")
		if err != nil {
			fmt.Println(err)
			return
		}
		err = reader.CopyContent(path, "envoy/css.ht", path+".bak")
		if err != nil {
			fmt.Println(err)
			return
		}
		err = os.Remove(path+".bak")
		if err != nil {
			fmt.Println(err)
			return
		}
	}
}