1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-17 11:12:28 +08:00

Merge branch 'v2' of github.com:duke-git/lancet into v2

This commit is contained in:
dudaodong
2023-09-23 13:48:40 +08:00
5 changed files with 138 additions and 0 deletions

View File

@@ -21,6 +21,8 @@ import (
"path/filepath"
"runtime"
"strings"
"github.com/duke-git/lancet/v2/validator"
)
// IsExist checks if a file or directory exists.
@@ -623,3 +625,24 @@ func WriteBytesToFile(filepath string, content []byte) error {
_, err = f.Write(content)
return err
}
// ReadFile get file reader by a url or a local file
// Play: todo
func ReadFile(path string) (reader io.ReadCloser, closeFn func(), err error) {
switch {
case validator.IsUrl(path):
resp, err := http.Get(path)
if err != nil {
return nil, func() {}, err
}
return resp.Body, func() { resp.Body.Close() }, nil
case IsExist(path):
reader, err := os.Open(path)
if err != nil {
return nil, func() {}, err
}
return reader, func() { reader.Close() }, nil
default:
return nil, func() {}, errors.New("unknown file type")
}
}