From 3913a894349b3f8321e71aa56b572d9fcfd9a4f0 Mon Sep 17 00:00:00 2001 From: john Date: Wed, 24 Jul 2019 15:29:10 +0800 Subject: [PATCH] add Replace function for gfile --- g/os/gfile/gfile_contents.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/g/os/gfile/gfile_contents.go b/g/os/gfile/gfile_contents.go index 857f30058..4c859edb2 100644 --- a/g/os/gfile/gfile_contents.go +++ b/g/os/gfile/gfile_contents.go @@ -7,6 +7,7 @@ package gfile import ( + "github.com/gogf/gf/g/text/gstr" "io" "io/ioutil" "os" @@ -160,3 +161,19 @@ func GetBinContentsByTwoOffsetsByPath(path string, start int64, end int64) []byt } return nil } + +// Replace replaces content for files under . +// The parameter specifies the file pattern which matches to be replaced. +// It does replacement recursively if given parameter is true. +func Replace(search, replace, path, pattern string, recursive ...bool) error { + files, err := ScanDir(path, pattern, recursive...) + if err != nil { + return err + } + for _, file := range files { + if err = PutContents(file, gstr.Replace(GetContents(file), search, replace)); err != nil { + return err + } + } + return err +}