| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package filesystem
- import (
- "io"
- "os"
- "github.com/v2fly/v2ray-core/v4/common/buf"
- "github.com/v2fly/v2ray-core/v4/common/platform"
- )
- type FileSeekerFunc func(path string) (io.ReadSeekCloser, error)
- type FileReaderFunc func(path string) (io.ReadCloser, error)
- type FileWriterFunc func(path string) (io.WriteCloser, error)
- var NewFileSeeker FileSeekerFunc = func(path string) (io.ReadSeekCloser, error) {
- return os.Open(path)
- }
- var NewFileReader FileReaderFunc = func(path string) (io.ReadCloser, error) {
- return os.Open(path)
- }
- var NewFileWriter FileWriterFunc = func(path string) (io.WriteCloser, error) {
- return os.Create(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 WriteFile(path string, payload []byte) error {
- writer, err := NewFileWriter(path)
- if err != nil {
- return err
- }
- defer writer.Close()
- return buf.WriteAllBytes(writer, payload)
- }
- 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, 0o644)
- if err != nil {
- return err
- }
- defer f.Close()
- _, err = f.Write(bytes)
- return err
- }
|