Optimization gfile example

This commit is contained in:
hailaz
2021-11-11 13:01:32 +08:00
parent 33694c8b47
commit 6d37515e14
6 changed files with 235 additions and 297 deletions

View File

@ -4,44 +4,32 @@ import (
"fmt"
"time"
"github.com/gogf/gf/v2/internal/intlog"
"github.com/gogf/gf/v2/os/gfile"
)
func ExampleGetContentsWithCache() {
intlog.SetEnabled(false)
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_cache")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_cache")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents")
gfile.PutContents(tempFile, "goframe example content")
// 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)
fmt.Println(gfile.GetContentsWithCache(tempFile, time.Minute))
// write new contents will clear its cache
gfile.PutContents(tempFile, "new test contents")
gfile.PutContents(tempFile, "new goframe example content")
time.Sleep(time.Second * 1)
// read contents
content2 := gfile.GetContentsWithCache(tempFile)
fmt.Println(content2)
fmt.Println(gfile.GetContentsWithCache(tempFile))
// Output:
// test contents
// test contents
// new test contents
// goframe example content
// new goframe example content
}

View File

@ -8,213 +8,191 @@ import (
func ExampleGetContents() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents")
gfile.PutContents(tempFile, "goframe example content")
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// test contents
// goframe example content
}
func ExampleGetBytes() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents")
gfile.PutContents(tempFile, "goframe example content")
// read contents
content := gfile.GetBytes(tempFile)
fmt.Println(string(content))
fmt.Println(gfile.GetBytes(tempFile))
// Output:
// test contents
// [103 111 102 114 97 109 101 32 101 120 97 109 112 108 101 32 99 111 110 116 101 110 116]
}
func ExamplePutContents() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents")
gfile.PutContents(tempFile, "goframe example content")
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// test contents
// goframe example content
}
func ExamplePutBytes() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutBytes(tempFile, []byte("test contents"))
gfile.PutBytes(tempFile, []byte("goframe example content"))
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// test contents
// goframe example content
}
func ExamplePutContentsAppend() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents")
gfile.PutContents(tempFile, "goframe example content")
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
fmt.Println(gfile.GetContents(tempFile))
// write contents
gfile.PutContentsAppend(tempFile, " append")
gfile.PutContentsAppend(tempFile, " append content")
// read contents
content1 := gfile.GetContents(tempFile)
fmt.Println(content1)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// test contents
// test contents append
// goframe example content
// goframe example content append content
}
func ExamplePutBytesAppend() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutBytes(tempFile, []byte("test contents"))
gfile.PutContents(tempFile, "goframe example content")
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
fmt.Println(gfile.GetContents(tempFile))
// write contents
gfile.PutBytesAppend(tempFile, []byte(" append"))
// read contents
content1 := gfile.GetContents(tempFile)
fmt.Println(content1)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// test contents
// test contents append
// goframe example content
// goframe example content append
}
func ExampleGetNextCharOffsetByPath() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents index")
gfile.PutContents(tempFile, "goframe example content")
// read contents
index := gfile.GetNextCharOffsetByPath(tempFile, 'i', 0)
index := gfile.GetNextCharOffsetByPath(tempFile, 'f', 0)
fmt.Println(index)
// Output:
// 14
// 2
}
func ExampleGetBytesTilCharByPath() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents: hello")
gfile.PutContents(tempFile, "goframe example content")
// read contents
contents, index := gfile.GetBytesTilCharByPath(tempFile, ':', 0)
fmt.Println(string(contents))
fmt.Println(index)
fmt.Println(gfile.GetBytesTilCharByPath(tempFile, 'f', 0))
// Output:
// test contents:
// 13
// [103 111 102] 2
}
func ExampleGetBytesByTwoOffsetsByPath() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents")
gfile.PutContents(tempFile, "goframe example content")
// read contents
contents := gfile.GetBytesByTwoOffsetsByPath(tempFile, 0, 4)
fmt.Println(string(contents))
fmt.Println(gfile.GetBytesByTwoOffsetsByPath(tempFile, 0, 7))
// Output:
// test
// [103 111 102 114 97 109 101]
}
func ExampleReadLines() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents\ntest contents")
gfile.PutContents(tempFile, "L1 goframe example content\nL2 goframe example content")
// read contents
gfile.ReadLines(tempFile, func(text string) error {
@ -224,30 +202,29 @@ func ExampleReadLines() {
})
// Output:
// test contents
// test contents
// L1 goframe example content
// L2 goframe example content
}
func ExampleReadLinesBytes() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_content")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_content")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents\ntest contents")
gfile.PutContents(tempFile, "L1 goframe example content\nL2 goframe example content")
// read contents
gfile.ReadLinesBytes(tempFile, func(bytes []byte) error {
// Process each line
fmt.Println(string(bytes))
fmt.Println(bytes)
return nil
})
// Output:
// test contents
// test contents
// [76 49 32 103 111 102 114 97 109 101 32 101 120 97 109 112 108 101 32 99 111 110 116 101 110 116]
// [76 50 32 103 111 102 114 97 109 101 32 101 120 97 109 112 108 101 32 99 111 110 116 101 110 116]
}

View File

@ -8,46 +8,39 @@ import (
func ExampleCopy() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_copy")
tempFile := gfile.Join(tempDir, fileName)
var (
srcFileName = "gflie_example.txt"
srcTempDir = gfile.TempDir("gfile_example_copy_src")
srcTempFile = gfile.Join(srcTempDir, srcFileName)
dstFileName := "123copy.txt"
dstTempDir := gfile.TempDir("gfile_example_copy_dst")
dstTempFile := gfile.Join(tempDir, dstFileName)
// copy file
dstFileName = "gflie_example_copy.txt"
dstTempFile = gfile.Join(srcTempDir, dstFileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
// clear
if gfile.Exists(dstTempFile) {
gfile.Remove(dstTempFile)
}
if gfile.Exists(dstTempDir) {
gfile.Remove(dstTempDir)
}
// copy dir
dstTempDir = gfile.TempDir("gfile_example_copy_dst")
)
// write contents
gfile.PutContents(tempFile, "test copy")
gfile.PutContents(srcTempFile, "goframe example copy")
// copy file
gfile.Copy(tempFile, dstTempFile)
gfile.Copy(srcTempFile, dstTempFile)
// read contents
content := gfile.GetContents(dstTempFile)
fmt.Println(content)
// read contents after copy file
fmt.Println(gfile.GetContents(dstTempFile))
// copy dir
gfile.Copy(tempDir, dstTempDir)
gfile.Copy(srcTempDir, dstTempDir)
// list copy dir file
fList, _ := gfile.ScanDir(dstTempDir, "*", false)
for _, v := range fList {
content := gfile.GetContents(v)
fmt.Println(content)
fmt.Println(gfile.Basename(v))
}
// Output:
// test copy
// test copy
// test copy
// goframe example copy
// gflie_example.txt
// gflie_example_copy.txt
}

View File

@ -9,45 +9,40 @@ import (
func ExampleReplaceFile() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_replace")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_replace")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents")
gfile.PutContents(tempFile, "goframe example content")
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
fmt.Println(gfile.GetContents(tempFile))
gfile.ReplaceFile("test", "replace word", tempFile)
gfile.ReplaceFile("content", "replace word", tempFile)
content1 := gfile.GetContents(tempFile)
fmt.Println(content1)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// test contents
// replace word contents
// goframe example content
// goframe example replace word
}
func ExampleReplaceFileFunc() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example_replace")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_replace")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "666 test contents 888 a1a2a3")
gfile.PutContents(tempFile, "goframe example 123")
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
fmt.Println(gfile.GetContents(tempFile))
// replace by yourself
gfile.ReplaceFileFunc(func(path, content string) string {
@ -56,90 +51,62 @@ func ExampleReplaceFileFunc() {
return reg.ReplaceAllString(content, "[num]")
}, tempFile)
content1 := gfile.GetContents(tempFile)
fmt.Println(content1)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// 666 test contents 888 a1a2a3
// [num] test contents [num] a1a2a3
// goframe example 123
// goframe example [num]
}
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)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_replace")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "test contents")
gfile.PutContents(tempSubFile, "test contents")
gfile.PutContents(tempFile, "goframe example content")
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
contentSub := gfile.GetContents(tempSubFile)
fmt.Println(contentSub)
fmt.Println(gfile.GetContents(tempFile))
gfile.ReplaceDir("test", "replace word", tempDir, "123.txt", true)
gfile.ReplaceDir("content", "replace word", tempDir, "gflie_example.txt", true)
// read contents
content1 := gfile.GetContents(tempFile)
fmt.Println(content1)
contentSub1 := gfile.GetContents(tempSubFile)
fmt.Println(contentSub1)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// test contents
// test contents
// replace word contents
// replace word contents
// goframe example content
// goframe example replace word
}
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)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_replace")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "666 test contents 888 a1a2a3")
gfile.PutContents(tempSubFile, "666 test contents 888 a1a2a3")
gfile.PutContents(tempFile, "goframe example 123")
// read contents
content := gfile.GetContents(tempFile)
fmt.Println(content)
contentSub := gfile.GetContents(tempSubFile)
fmt.Println(contentSub)
fmt.Println(gfile.GetContents(tempFile))
// replace by yourself
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)
}, tempDir, "gflie_example.txt", true)
// read contents
content1 := gfile.GetContents(tempFile)
fmt.Println(content1)
contentSub1 := gfile.GetContents(tempSubFile)
fmt.Println(contentSub1)
fmt.Println(gfile.GetContents(tempFile))
// Output:
// 666 test contents 888 a1a2a3
// 666 test contents 888 a1a2a3
// [num] test contents [num] a1a2a3
// [num] test contents [num] a1a2a3
// goframe example 123
// goframe example [num]
}

View File

@ -8,71 +8,76 @@ import (
func ExampleScanDir() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example")
tempFile := gfile.Join(tempDir, fileName)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_replace")
tempFile = gfile.Join(tempDir, fileName)
tempSubDir := gfile.Join(tempDir, "sub_dir")
tempSubFile := gfile.Join(tempSubDir, 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, "goframe example content")
gfile.PutContents(tempSubFile, "goframe example content")
// scans directory recursively
list, _ := gfile.ScanDir(tempDir, "123.txt,sub_dir", true)
list, _ := gfile.ScanDir(tempDir, "gflie_example.txt,sub_dir", true)
for _, v := range list {
fmt.Println(gfile.Basename(v))
}
// Output:
// 123.txt
// gflie_example.txt
// sub_dir
// 123.txt
// gflie_example.txt
}
func ExampleScanDirFile() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example")
tempFile := gfile.Join(tempDir, fileName)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_replace")
tempFile = gfile.Join(tempDir, fileName)
tempSubDir := gfile.Join(tempDir, "sub_dir")
tempSubFile := gfile.Join(tempSubDir, 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, "goframe example content")
gfile.PutContents(tempSubFile, "goframe example content")
// scans directory recursively exclusive of directories
list, _ := gfile.ScanDirFile(tempDir, "123.txt,sub_dir", true)
list, _ := gfile.ScanDirFile(tempDir, "gflie_example.txt,sub_dir", true)
for _, v := range list {
fmt.Println(gfile.Basename(v))
}
// Output:
// 123.txt
// 123.txt
// gflie_example.txt
// gflie_example.txt
}
func ExampleScanDirFunc() {
// init
fileName := "123.txt"
fileName1 := "1234.txt"
tempDir := gfile.TempDir("gfile_example_1")
tempFile := gfile.Join(tempDir, fileName)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_replace")
tempFile = gfile.Join(tempDir, fileName)
tempSubDir := gfile.Join(tempDir, "sub_dir")
tempSubFile := gfile.Join(tempSubDir, fileName1)
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, "goframe example content")
gfile.PutContents(tempSubFile, "goframe example content")
// scans directory recursively
list, _ := gfile.ScanDirFunc(tempDir, "123.txt,1234.txt,sub_dir", true, func(path string) string {
list, _ := gfile.ScanDirFunc(tempDir, "gflie_example.txt,sub_dir", true, func(path string) string {
// ignores some files
if gfile.Basename(path) == "1234.txt" {
if gfile.Basename(path) == "gflie_example.txt" {
return ""
}
return path
@ -82,28 +87,32 @@ func ExampleScanDirFunc() {
}
// 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)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_replace")
tempFile = gfile.Join(tempDir, fileName)
tempSubDir := gfile.Join(tempDir, "sub_dir")
tempSubFile := gfile.Join(tempSubDir, fileName1)
fileName1 = "gflie_example_ignores.txt"
tempFile1 = gfile.Join(tempDir, fileName1)
gfile.Mkdir(tempSubDir)
gfile.Create(tempFile)
gfile.Create(tempSubFile)
tempSubDir = gfile.Join(tempDir, "sub_dir")
tempSubFile = gfile.Join(tempSubDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "goframe example content")
gfile.PutContents(tempFile1, "goframe example content")
gfile.PutContents(tempSubFile, "goframe example content")
// scans directory recursively exclusive of directories
list, _ := gfile.ScanDirFileFunc(tempDir, "123.txt,1234.txt,sub_dir", true, func(path string) string {
list, _ := gfile.ScanDirFileFunc(tempDir, "gflie_example.txt,gflie_example_ignores.txt,sub_dir", true, func(path string) string {
// ignores some files
if gfile.Basename(path) == "1234.txt" {
if gfile.Basename(path) == "gflie_example_ignores.txt" {
return ""
}
return path
@ -113,5 +122,6 @@ func ExampleScanDirFileFunc() {
}
// Output:
// 123.txt
// gflie_example.txt
// gflie_example.txt
}

View File

@ -8,16 +8,19 @@ import (
func ExampleSearch() {
// init
fileName := "123.txt"
tempDir := gfile.TempDir("gfile_example")
tempFile := gfile.Join(tempDir, fileName)
gfile.Mkdir(tempDir)
gfile.Create(tempFile)
var (
fileName = "gflie_example.txt"
tempDir = gfile.TempDir("gfile_example_search")
tempFile = gfile.Join(tempDir, fileName)
)
// write contents
gfile.PutContents(tempFile, "goframe example content")
// search file
realPath, _ := gfile.Search(fileName, tempDir)
fmt.Println(gfile.Basename(realPath))
// Output:
// 123.txt
// gflie_example.txt
}