| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package filesystem
- import (
- "io"
- "os"
- "github.com/v2fly/v2ray-core/v4/common/buf"
- "github.com/v2fly/v2ray-core/v4/common/platform"
- )
- type FileReaderFunc func(path string) (io.ReadCloser, error)
- var NewFileReader FileReaderFunc = func(path string) (io.ReadCloser, error) {
- return os.Open(path)
- }
- func ReadFile(path string) ([]byte, error) {
- reader, err := NewFileReader(path)
- if err != nil {
- return nil, err
- }
- defer reader.Close()
- return buf.ReadAllToBytes(reader)
- }
- func ReadAsset(file string) ([]byte, error) {
- return ReadFile(platform.GetAssetLocation(file))
- }
- func CopyFile(dst string, src string) error {
- bytes, err := ReadFile(src)
- if err != nil {
- return err
- }
- f, err := os.OpenFile(dst, os.O_CREATE|os.O_WRONLY, 0644)
- if err != nil {
- return err
- }
- defer f.Close()
- _, err = f.Write(bytes)
- return err
- }
|