From 8a9dd169e2c6fbc8256099734e889b99e93300c2 Mon Sep 17 00:00:00 2001 From: hailaz <739476267@qq.com> Date: Fri, 5 Nov 2021 14:30:50 +0800 Subject: [PATCH] test: add gflie example --- os/gfile/gfile_home.go | 7 +- os/gfile/gfile_z_contents_test.go | 2 +- os/gfile/gfile_z_example_cache_test.go | 43 ++++ os/gfile/gfile_z_example_contents_test.go | 253 ++++++++++++++++++++++ os/gfile/gfile_z_example_copy_test.go | 53 +++++ os/gfile/gfile_z_example_home_test.go | 16 ++ os/gfile/gfile_z_example_replace_test.go | 145 +++++++++++++ os/gfile/gfile_z_example_scan_test.go | 117 ++++++++++ os/gfile/gfile_z_example_search_test.go | 23 ++ os/gfile/gfile_z_example_size_test.go | 56 +++++ os/gfile/gfile_z_example_sort_test.go | 26 +++ os/gfile/gfile_z_example_time_test.go | 31 +++ os/gfile/gfile_z_test.go | 2 +- 13 files changed, 769 insertions(+), 5 deletions(-) create mode 100644 os/gfile/gfile_z_example_cache_test.go create mode 100644 os/gfile/gfile_z_example_contents_test.go create mode 100644 os/gfile/gfile_z_example_copy_test.go create mode 100644 os/gfile/gfile_z_example_home_test.go create mode 100644 os/gfile/gfile_z_example_replace_test.go create mode 100644 os/gfile/gfile_z_example_scan_test.go create mode 100644 os/gfile/gfile_z_example_search_test.go create mode 100644 os/gfile/gfile_z_example_size_test.go create mode 100644 os/gfile/gfile_z_example_sort_test.go create mode 100644 os/gfile/gfile_z_example_time_test.go diff --git a/os/gfile/gfile_home.go b/os/gfile/gfile_home.go index a6137b156..68bc6c645 100644 --- a/os/gfile/gfile_home.go +++ b/os/gfile/gfile_home.go @@ -8,13 +8,14 @@ package gfile import ( "bytes" - "github.com/gogf/gf/v2/errors/gcode" - "github.com/gogf/gf/v2/errors/gerror" "os" "os/exec" "os/user" "runtime" "strings" + + "github.com/gogf/gf/v2/errors/gcode" + "github.com/gogf/gf/v2/errors/gerror" ) // Home returns absolute path of current user's home directory. @@ -37,7 +38,7 @@ func getHomePath() (string, error) { if nil == err { return u.HomeDir, nil } - if "windows" == runtime.GOOS { + if runtime.GOOS == "windows" { return homeWindows() } return homeUnix() diff --git a/os/gfile/gfile_z_contents_test.go b/os/gfile/gfile_z_contents_test.go index 488cdfd22..9f34b2240 100644 --- a/os/gfile/gfile_z_contents_test.go +++ b/os/gfile/gfile_z_contents_test.go @@ -102,8 +102,8 @@ func Test_Truncate(t *testing.T) { t.Assert(err, nil) files, err = os.Open(testpath() + filepaths1) - defer files.Close() t.Assert(err, nil) + defer files.Close() fileinfo, err2 := files.Stat() t.Assert(err2, nil) t.Assert(fileinfo.Size(), 10) diff --git a/os/gfile/gfile_z_example_cache_test.go b/os/gfile/gfile_z_example_cache_test.go new file mode 100644 index 000000000..f7939a960 --- /dev/null +++ b/os/gfile/gfile_z_example_cache_test.go @@ -0,0 +1,43 @@ +package gfile_test + +import ( + "fmt" + "time" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleGetContentsWithCache() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_cache") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents") + + // read contents + content := gfile.GetContentsWithCache(tempFile, time.Minute) + fmt.Println(content) + + time.Sleep(time.Second * 1) + + // read contents + content1 := gfile.GetContentsWithCache(tempFile) + fmt.Println(content1) + + // write new contents will clear its cache + gfile.PutContents(tempFile, "new test contents") + + // read contents + content2 := gfile.GetContentsWithCache(tempFile) + fmt.Println(content2) + + // Output: + // test contents + // test contents + // new test contents +} diff --git a/os/gfile/gfile_z_example_contents_test.go b/os/gfile/gfile_z_example_contents_test.go new file mode 100644 index 000000000..7d325e277 --- /dev/null +++ b/os/gfile/gfile_z_example_contents_test.go @@ -0,0 +1,253 @@ +package gfile_test + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleGetContents() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents") + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + + // Output: + // test contents +} + +func ExampleGetBytes() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents") + + // read contents + content := gfile.GetBytes(tempFile) + fmt.Println(string(content)) + + // Output: + // test contents +} + +func ExamplePutContents() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents") + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + + // Output: + // test contents +} + +func ExamplePutBytes() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutBytes(tempFile, []byte("test contents")) + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + + // Output: + // test contents +} + +func ExamplePutContentsAppend() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents") + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + + // write contents + gfile.PutContentsAppend(tempFile, " append") + + // read contents + content1 := gfile.GetContents(tempFile) + fmt.Println(content1) + + // Output: + // test contents + // test contents append +} + +func ExamplePutBytesAppend() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutBytes(tempFile, []byte("test contents")) + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + + // write contents + gfile.PutBytesAppend(tempFile, []byte(" append")) + + // read contents + content1 := gfile.GetContents(tempFile) + fmt.Println(content1) + + // Output: + // test contents + // test contents append +} + +func ExampleGetNextCharOffsetByPath() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents index") + + // read contents + index := gfile.GetNextCharOffsetByPath(tempFile, 'i', 0) + fmt.Println(index) + + // Output: + // 14 +} + +func ExampleGetBytesTilCharByPath() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents: hello") + + // read contents + contents, index := gfile.GetBytesTilCharByPath(tempFile, ':', 0) + fmt.Println(string(contents)) + fmt.Println(index) + + // Output: + // test contents: + // 13 +} + +func ExampleGetBytesByTwoOffsetsByPath() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents") + + // read contents + contents := gfile.GetBytesByTwoOffsetsByPath(tempFile, 0, 4) + fmt.Println(string(contents)) + + // Output: + // test +} + +func ExampleReadLines() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents\ntest contents") + + // read contents + gfile.ReadLines(tempFile, func(text string) error { + // Process each line + fmt.Println(text) + return nil + }) + + // Output: + // test contents + // test contents +} + +func ExampleReadLinesBytes() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_content") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents\ntest contents") + + // read contents + gfile.ReadLinesBytes(tempFile, func(bytes []byte) error { + // Process each line + fmt.Println(string(bytes)) + return nil + }) + + // Output: + // test contents + // test contents +} diff --git a/os/gfile/gfile_z_example_copy_test.go b/os/gfile/gfile_z_example_copy_test.go new file mode 100644 index 000000000..adf005514 --- /dev/null +++ b/os/gfile/gfile_z_example_copy_test.go @@ -0,0 +1,53 @@ +package gfile_test + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleCopy() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_copy") + tempFile := gfile.Join(tempDir, fileName) + + dstFileName := "123copy.txt" + dstTempDir := gfile.TempDir("gfile_example_copy_dst") + dstTempFile := gfile.Join(tempDir, dstFileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // clear + if gfile.Exists(dstTempFile) { + gfile.Remove(dstTempFile) + } + if gfile.Exists(dstTempDir) { + gfile.Remove(dstTempDir) + } + + // write contents + gfile.PutContents(tempFile, "test copy") + + // copy file + gfile.Copy(tempFile, dstTempFile) + + // read contents + content := gfile.GetContents(dstTempFile) + fmt.Println(content) + + // copy dir + gfile.Copy(tempDir, dstTempDir) + + fList, _ := gfile.ScanDir(dstTempDir, "*", false) + for _, v := range fList { + content := gfile.GetContents(v) + fmt.Println(content) + } + + // Output: + // test copy + // test copy + // test copy +} diff --git a/os/gfile/gfile_z_example_home_test.go b/os/gfile/gfile_z_example_home_test.go new file mode 100644 index 000000000..ef43af9cd --- /dev/null +++ b/os/gfile/gfile_z_example_home_test.go @@ -0,0 +1,16 @@ +package gfile_test + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleHome() { + // user's home directory + homePath, _ := gfile.Home() + fmt.Println(homePath) + + // May Output: + // C:\Users\hailaz +} diff --git a/os/gfile/gfile_z_example_replace_test.go b/os/gfile/gfile_z_example_replace_test.go new file mode 100644 index 000000000..7600d7ee3 --- /dev/null +++ b/os/gfile/gfile_z_example_replace_test.go @@ -0,0 +1,145 @@ +package gfile_test + +import ( + "fmt" + "regexp" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleReplaceFile() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_replace") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "test contents") + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + + gfile.ReplaceFile("test", "replace word", tempFile) + + content1 := gfile.GetContents(tempFile) + fmt.Println(content1) + + // Output: + // test contents + // replace word contents +} + +func ExampleReplaceFileFunc() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_replace") + tempFile := gfile.Join(tempDir, fileName) + + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // write contents + gfile.PutContents(tempFile, "666 test contents 888 a1a2a3") + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + + // replace by yourself + gfile.ReplaceFileFunc(func(path, content string) string { + // Replace with regular match + reg, _ := regexp.Compile(`\d{3}`) + return reg.ReplaceAllString(content, "[num]") + }, tempFile) + + content1 := gfile.GetContents(tempFile) + fmt.Println(content1) + + // Output: + // 666 test contents 888 a1a2a3 + // [num] test contents [num] a1a2a3 +} + +func ExampleReplaceDir() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_replace") + tempFile := gfile.Join(tempDir, fileName) + + tempSubDir := gfile.Join(tempDir, "sub_dir") + tempSubFile := gfile.Join(tempSubDir, fileName) + + gfile.Mkdir(tempSubDir) + gfile.Create(tempFile) + gfile.Create(tempSubFile) + + // write contents + gfile.PutContents(tempFile, "test contents") + gfile.PutContents(tempSubFile, "test contents") + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + contentSub := gfile.GetContents(tempSubFile) + fmt.Println(contentSub) + + gfile.ReplaceDir("test", "replace word", tempDir, "123.txt", true) + + // read contents + content1 := gfile.GetContents(tempFile) + fmt.Println(content1) + contentSub1 := gfile.GetContents(tempSubFile) + fmt.Println(contentSub1) + + // Output: + // test contents + // test contents + // replace word contents + // replace word contents +} + +func ExampleReplaceDirFunc() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example_replace") + tempFile := gfile.Join(tempDir, fileName) + + tempSubDir := gfile.Join(tempDir, "sub_dir") + tempSubFile := gfile.Join(tempSubDir, fileName) + + gfile.Mkdir(tempSubDir) + gfile.Create(tempFile) + gfile.Create(tempSubFile) + + // write contents + gfile.PutContents(tempFile, "666 test contents 888 a1a2a3") + gfile.PutContents(tempSubFile, "666 test contents 888 a1a2a3") + + // read contents + content := gfile.GetContents(tempFile) + fmt.Println(content) + contentSub := gfile.GetContents(tempSubFile) + fmt.Println(contentSub) + + gfile.ReplaceDirFunc(func(path, content string) string { + // Replace with regular match + reg, _ := regexp.Compile(`\d{3}`) + return reg.ReplaceAllString(content, "[num]") + }, tempDir, "123.txt", true) + + // read contents + content1 := gfile.GetContents(tempFile) + fmt.Println(content1) + contentSub1 := gfile.GetContents(tempSubFile) + fmt.Println(contentSub1) + + // Output: + // 666 test contents 888 a1a2a3 + // 666 test contents 888 a1a2a3 + // [num] test contents [num] a1a2a3 + // [num] test contents [num] a1a2a3 +} diff --git a/os/gfile/gfile_z_example_scan_test.go b/os/gfile/gfile_z_example_scan_test.go new file mode 100644 index 000000000..9dd443a4b --- /dev/null +++ b/os/gfile/gfile_z_example_scan_test.go @@ -0,0 +1,117 @@ +package gfile_test + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleScanDir() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example") + tempFile := gfile.Join(tempDir, fileName) + + tempSubDir := gfile.Join(tempDir, "sub_dir") + tempSubFile := gfile.Join(tempSubDir, fileName) + + gfile.Mkdir(tempSubDir) + gfile.Create(tempFile) + gfile.Create(tempSubFile) + + // scans directory recursively + list, _ := gfile.ScanDir(tempDir, "123.txt,sub_dir", true) + for _, v := range list { + fmt.Println(gfile.Basename(v)) + } + + // Output: + // 123.txt + // sub_dir + // 123.txt +} + +func ExampleScanDirFile() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example") + tempFile := gfile.Join(tempDir, fileName) + + tempSubDir := gfile.Join(tempDir, "sub_dir") + tempSubFile := gfile.Join(tempSubDir, fileName) + + gfile.Mkdir(tempSubDir) + gfile.Create(tempFile) + gfile.Create(tempSubFile) + + // scans directory recursively exclusive of directories + list, _ := gfile.ScanDirFile(tempDir, "123.txt,sub_dir", true) + for _, v := range list { + fmt.Println(gfile.Basename(v)) + } + + // Output: + // 123.txt + // 123.txt +} + +func ExampleScanDirFunc() { + // init + fileName := "123.txt" + fileName1 := "1234.txt" + tempDir := gfile.TempDir("gfile_example_1") + tempFile := gfile.Join(tempDir, fileName) + + tempSubDir := gfile.Join(tempDir, "sub_dir") + tempSubFile := gfile.Join(tempSubDir, fileName1) + + gfile.Mkdir(tempSubDir) + gfile.Create(tempFile) + gfile.Create(tempSubFile) + + // scans directory recursively + list, _ := gfile.ScanDirFunc(tempDir, "123.txt,1234.txt,sub_dir", true, func(path string) string { + // ignores some files + if gfile.Basename(path) == "1234.txt" { + return "" + } + return path + }) + for _, v := range list { + fmt.Println(gfile.Basename(v)) + } + + // Output: + // 123.txt + // sub_dir +} + +func ExampleScanDirFileFunc() { + // init + fileName := "123.txt" + fileName1 := "1234.txt" + tempDir := gfile.TempDir("gfile_example_1") + tempFile := gfile.Join(tempDir, fileName) + + tempSubDir := gfile.Join(tempDir, "sub_dir") + tempSubFile := gfile.Join(tempSubDir, fileName1) + + gfile.Mkdir(tempSubDir) + gfile.Create(tempFile) + gfile.Create(tempSubFile) + + // scans directory recursively exclusive of directories + list, _ := gfile.ScanDirFileFunc(tempDir, "123.txt,1234.txt,sub_dir", true, func(path string) string { + // ignores some files + if gfile.Basename(path) == "1234.txt" { + return "" + } + return path + }) + for _, v := range list { + fmt.Println(gfile.Basename(v)) + } + + // Output: + // 123.txt +} diff --git a/os/gfile/gfile_z_example_search_test.go b/os/gfile/gfile_z_example_search_test.go new file mode 100644 index 000000000..01ea92c36 --- /dev/null +++ b/os/gfile/gfile_z_example_search_test.go @@ -0,0 +1,23 @@ +package gfile_test + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleSearch() { + // init + fileName := "123.txt" + tempDir := gfile.TempDir("gfile_example") + tempFile := gfile.Join(tempDir, fileName) + gfile.Mkdir(tempDir) + gfile.Create(tempFile) + + // search file + realPath, _ := gfile.Search(fileName, tempDir) + fmt.Println(gfile.Basename(realPath)) + + // Output: + // 123.txt +} diff --git a/os/gfile/gfile_z_example_size_test.go b/os/gfile/gfile_z_example_size_test.go new file mode 100644 index 000000000..5ff979f20 --- /dev/null +++ b/os/gfile/gfile_z_example_size_test.go @@ -0,0 +1,56 @@ +package gfile_test + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleSize() { + tempDir := gfile.TempDir("gfile_example") + gfile.Mkdir(tempDir) + size := gfile.Size(tempDir) + fmt.Println(size) + + // Output: + // 0 +} + +func ExampleSizeFormat() { + tempDir := gfile.TempDir("gfile_example") + gfile.Mkdir(tempDir) + sizeStr := gfile.SizeFormat(tempDir) + fmt.Println(sizeStr) + + // Output: + // 0.00B +} + +func ExampleReadableSize() { + tempDir := gfile.TempDir("gfile_example") + gfile.Mkdir(tempDir) + sizeStr := gfile.ReadableSize(tempDir) + fmt.Println(sizeStr) + + // Output: + // 0.00B +} + +func ExampleStrToSize() { + size := gfile.StrToSize("100MB") + fmt.Println(size) + + // Output: + // 104857600 +} + +func ExampleFormatSize() { + sizeStr := gfile.FormatSize(104857600) + fmt.Println(sizeStr) + sizeStr1 := gfile.FormatSize(999999999999999999) + fmt.Println(sizeStr1) + + // Output: + // 100.00M + // 888.18P +} diff --git a/os/gfile/gfile_z_example_sort_test.go b/os/gfile/gfile_z_example_sort_test.go new file mode 100644 index 000000000..f49ff65b0 --- /dev/null +++ b/os/gfile/gfile_z_example_sort_test.go @@ -0,0 +1,26 @@ +package gfile_test + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleSortFiles() { + files := []string{ + "/aaa/bbb/ccc.txt", + "/aaa/bbb/", + "/aaa/", + "/aaa", + "/aaa/ccc/ddd.txt", + "/bbb", + "/0123", + "/ddd", + "/ccc", + } + sortOut := gfile.SortFiles(files) + fmt.Println(sortOut) + + // Output: + // [/0123 /aaa /aaa/ /aaa/bbb/ /aaa/bbb/ccc.txt /aaa/ccc/ddd.txt /bbb /ccc /ddd] +} diff --git a/os/gfile/gfile_z_example_time_test.go b/os/gfile/gfile_z_example_time_test.go new file mode 100644 index 000000000..cfd7c7318 --- /dev/null +++ b/os/gfile/gfile_z_example_time_test.go @@ -0,0 +1,31 @@ +package gfile_test + +import ( + "fmt" + + "github.com/gogf/gf/v2/os/gfile" +) + +func ExampleMTime() { + t := gfile.MTime(gfile.TempDir()) + fmt.Println(t) + + // May Output: + // 2021-11-02 15:18:43.901141 +0800 CST +} + +func ExampleMTimestamp() { + t := gfile.MTimestamp(gfile.TempDir()) + fmt.Println(t) + + // May Output: + // 1635838398 +} + +func ExampleMTimestampMilli() { + t := gfile.MTimestampMilli(gfile.TempDir()) + fmt.Println(t) + + // May Output: + // 1635838529330 +} diff --git a/os/gfile/gfile_z_test.go b/os/gfile/gfile_z_test.go index fce200568..d26aee020 100644 --- a/os/gfile/gfile_z_test.go +++ b/os/gfile/gfile_z_test.go @@ -191,7 +191,7 @@ func Test_OpenWithFlagPerm(t *testing.T) { flags = append(flags, false) for k, v := range files { - fileobj, err = gfile.OpenWithFlagPerm(testpath()+v, os.O_RDWR, 666) + fileobj, err = gfile.OpenWithFlagPerm(testpath()+v, os.O_RDWR, 0666) fileobj.Close() if flags[k] { t.Assert(err, nil)