Documentation ¶
Index ¶
- Variables
- func CopyDir(src string, dst string) error
- func CopyFile(src string, dst string) error
- func DirExists(dir, name string) (bool, error)
- func FileExists(filePath string) bool
- func ReadFileToBuffer(filePath string) (*bytes.Buffer, error)
- type Assets
- type FileOperator
- func (fo *FileOperator) Append(content string)
- func (fo *FileOperator) BatchInsert(pos int, contents []string) (nextPos int, err error)
- func (fo *FileOperator) Find(marker string, isLike bool, startPos, endPos int) (int, error)
- func (fo *FileOperator) FindRange(startMarker, endMarker string, isLike bool, startPos, endPos int) (int, int, error)
- func (fo *FileOperator) GetLine(pos int) string
- func (fo *FileOperator) GetLines() []string
- func (fo *FileOperator) Insert(pos int, content string) (nextPos int, err error)
- func (fo *FileOperator) ReadFile() error
- func (fo *FileOperator) Save() error
- func (fo FileOperator) String() string
Constants ¶
This section is empty.
Variables ¶
var Err_0200010001 err.ErrCode = err.New(
"0200010001",
"Relative path %s with %s : %+v",
"",
)
Err_0200010001 计算两个路径的相对路径失败。
Verbs:
0: 基础路径。 1: 目标路径。 2: filepath.Rel产生的错误信息。
var Err_0200020001 err.ErrCode = err.New(
"0200020001",
"Write file %s : %+v",
"",
)
Err_0200020001 写入文件失败。
Verbs:
0: 文件路径。 1: os.WriteFile产生的错误信息。
var Err_0200020002 err.ErrCode = err.New(
"0200020002",
"Format file %s : %+v",
"可能得原因是:1.传入的文件内容缺少package。",
)
Err_0200020002 格式化文件失败。
Verbs:
0: 文件路径。 1: imports.Process产生的错误信息
var Err_0200020003 err.ErrCode = err.New(
"0200020003",
"Open file %s : %+v",
"",
)
Err_0200020003 打开文件失败。
Verbs:
0: 文件路径。 1: os.Open产生的错误信息。
var Err_0200020004 err.ErrCode = err.New(
"0200020004",
"Create file %s : %+v",
"可能原因是:1.传入的路径是一个文件而不是文件夹。",
)
Err_0200020004 创建文件失败。
Verbs:
0: 文件路径。 1: os.Create产生的错误信息。
var Err_0200020005 err.ErrCode = err.New(
"0200020005",
"Copy file %s to %s : %+v",
"",
)
Err_0200020005 复制文件失败。
Verbs:
0: 源文件路径。 1: 目标文件路径。 2: io.Copy产生的错误信息。
var Err_0200020006 err.ErrCode = err.New(
"0200020006",
"File not exists %s",
"",
)
Err_0200020006 文件不存在。
Verbs:
0: 文件路径。
var Err_0200020007 err.ErrCode = err.New(
"0200020007",
"Read file %s : %+v",
"",
)
Err_0200020007 读取文件失败。
Verbs:
0: 文件路径。 1: bufio.Scanner产生的错误信息。
var Err_0200020008 err.ErrCode = err.New(
"0200020008",
"Insert position should not less than %d",
"",
)
Err_0200020008 在文件中插入内容的位置不应该小于指定值
var Err_020002000x err.ErrCode = err.New(
"020002000x",
"%s.",
"",
)
Err_020002000x 未知的错误。
Verbs:
0: 错误的信息。
var Err_0200030001 err.ErrCode = err.New(
"0200030001",
"Create directory %s : %+v",
"可能得原因是:1.传入的文件夹路径不正确,比如传入一个空的路径``。 ",
)
Err_0200030001 创建文件夹失败。
Verbs:
0: 文件夹路径。 1: os.MkdirAll产生的错误信息。
var Err_0200030002 err.ErrCode = err.New(
"0200030002",
"Open directory %s : %+v",
"",
)
Err_0200030002 打开文件夹失败。
Verbs:
0: 文件路径。 1: filepath.Walk产生的错误信息。
Functions ¶
func CopyDir ¶
CopyDir 复制整个目录
Params:
- src: 源文件夹的路径. default: 111
- dst: 目标文件夹的路径
Example:
err := asset.CopyDir("dir", "dir2")
if err != nil { fmt.Print(err) }
ExamplePath: taurus_go_demo/asset/asset_test.go - TestCopyDir
ErrCodes:
- Err_0200010001
- Err_0200010007
- Err_0200010008
func CopyFile ¶
CopyFile 复制文件到目标路径。
Params:
- src: 源文件的路径。
- dst: 目标文件的路径。
Example:
err := asset.CopyFile("file.go", "file2.go")
if err != nil { fmt.Print(err) }
ExamplePath: taurus_go_demo/asset/asset_test.go - TestCopy
ErrCodes:
- Err_0200010004
- Err_0200010005
- Err_0200010006
Types ¶
type Assets ¶
type Assets struct { // Dirs 用于存放需要创建的文件夹 Dirs map[string]struct{} // Files 用于存放需要创建的文件 Files map[string][]byte }
Assets 用于存放需要创建的文件夹和文件
func (*Assets) Add ¶
Add 用于在`Assets`中添加一个新的文件。
Params:
- path: 文件路径。
- b: 文件内容。
Example:
var assets asset.Assets assets.Add("file.txt", []byte("Hellow, World!")) assets.Add("../file_2.go", []byte(` package main import "fmt" func Main() {fmt.Println("Hello, World!")} `)) err := assets.Write() if err != nil { fmt.Print(err) }
ExamplePath: taurus_go_demo/asset/asset_test.go - TestAdd
func (*Assets) AddDir ¶
AddDir 用于在`Assets`中添加一个新的文件夹。
Params:
- path: 文件夹路径。
Returns:
0: 成功。
Example:
var assets asset.Assets assets.AddDir("dir") assets.AddDir("./dir2") err := assets.Write() if err != nil { fmt.Print(err) }
ExamplePath: taurus_go_demo/asset/asset_test.go - TestAddDir
func (*Assets) Clear ¶ added in v0.5.0
func (a *Assets) Clear()
Clear 清空`Assets`中的Dirs和Files。
Example:
var assets asset.Assets assets.Add("file.txt", []byte("Hellow, World!")) assets.AddDir("dir") assets.Clear() fmt.Print(assets)
ExamplePath: taurus_go_demo/asset/asset_test.go - TestClear
func (Assets) Format ¶
Format 格式化文件,目前只能用来格式化Go源文件。
Example:
var assets asset.Assets
assets.Add("test.go", []byte(` package main import "fmt" func Main() {fmt.Println("Hello, World!")} `)) err := assets.Write() if err != nil { fmt.Print(err) } err = assets.Format() if err != nil { fmt.Print(err) }
ExamplePath: taurus_go_demo/asset/asset_test.go - TestFormat
ErrCodes:
- Err_0200010002
- Err_0200010003
func (Assets) Write ¶
Write 写入全部的Dirs和Files,如果文件已经存在,则会覆盖。 执行后会清空Dirs和Files。
Example:
var assets asset.Assets assets.Add("file.txt", []byte("Hellow, World!")) assets.AddDir("dir") err := assets.Write()
if err != nil { fmt.Print(err) }
ExamplePath: taurus_go_demo/asset/asset_test.go - TestWrite
ErrCodes:
- Err_0200010001
- Err_0200010002
type FileOperator ¶ added in v0.7.0
type FileOperator struct { FilePath string // contains filtered or unexported fields }
FileOperator 文件操作者
这个结构体用于操作文件,比如读取文件内容,查找标记位置,插入代码等。 仅对文本文件有效。
func NewFileOperator ¶ added in v0.7.0
func NewFileOperator(filePath string) (*FileOperator, error)
NewFileOperator 创建一个新的 FileOperator 实例
func (*FileOperator) Append ¶ added in v0.7.0
func (fo *FileOperator) Append(content string)
Push 在文件末尾追加内容
func (*FileOperator) BatchInsert ¶ added in v0.7.0
func (fo *FileOperator) BatchInsert(pos int, contents []string) (nextPos int, err error)
BatchInsert 批量插入内容
Params:
- index: 插入位置,会在这个位置插入,从1开始。比如 pos = 1,会在第一行后面插入,原本的第一行会变成第二行。
- contents: 要插入的内容列表。
Returns:
0: 插入内容后一行的行号。 1: 错误信息。
func (*FileOperator) Find ¶ added in v0.7.0
Find 查找文件中的标记位置, 如果找到则返回行号,行号从1开始;否则返回-1。
Params:
- marker: 要查找的标记。
- isLike: 是否使用模糊匹配。
- startPos: 查找的起始位置,从0开始。如果小于0,则从第一行开始查找。
- endPos: 查找的结束位置,如果小于0或大于文件行数,则到文件末尾。
Returns:
0: 标记所在行号。如果找不到,则返回-1。 1: 错误信息。
Example:
// 全文查询 pos, err := fo.Find("func main() {", true, -1, -1) // 从第10行开始查询 pos, err := fo.Find("func main() {", true, 10, -1)
func (*FileOperator) FindRange ¶ added in v0.7.0
func (fo *FileOperator) FindRange(startMarker, endMarker string, isLike bool, startPos, endPos int) (int, int, error)
FindRange 查找文件中的两个标记之间的位置。
Params:
- start: 起始标记。
- end: 结束标记。
- isLike: 是否使用模糊匹配。
- startPos: 查找的起始位置,从0开始。如果小于0,则从第一行开始查找。
- endPos: 查找的结束位置,如果小于0或大于文件行数,则到文件末尾。
Returns:
0: 起始行号。如果找不到,则返回-1,同时结束行号也为-1。 1: 结束行号。如果找不到,则返回-1。存在有起始行号但找不到结束行号的情况,此时起始行号大于0,结束行号为-1。 2: 错误信息。
func (*FileOperator) GetLine ¶ added in v0.7.0
func (fo *FileOperator) GetLine(pos int) string
GetLine 获取指定行的内容 如果行号超出范围,则返回空字符串。
func (*FileOperator) GetLines ¶ added in v0.7.0
func (fo *FileOperator) GetLines() []string
func (*FileOperator) Insert ¶ added in v0.7.0
func (fo *FileOperator) Insert(pos int, content string) (nextPos int, err error)
Insert 在指定位置插入内容
Params:
- pos: 插入位置,会在这个位置插入,从1开始。比如 pos = 1,会在第一行后面插入,原本的第一行会变成第二行。
- content: 要插入的内容。
Returns:
0: 插入内容后一行的行号。 1: 错误信息。
func (*FileOperator) ReadFile ¶ added in v0.7.0
func (fo *FileOperator) ReadFile() error
ReadFile 读取文件内容
func (FileOperator) String ¶ added in v0.7.0
func (fo FileOperator) String() string