// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn . package fsutils import ( "os" ) func Remove(filename string) (err error) { WriterLimiter.Ack() err = os.Remove(filename) WriterLimiter.Release() return } func Rename(oldPath string, newPath string) (err error) { WriterLimiter.Ack() err = os.Rename(oldPath, newPath) WriterLimiter.Release() return } func ReadFile(filename string) (data []byte, err error) { ReaderLimiter.Ack() data, err = os.ReadFile(filename) ReaderLimiter.Release() return } func WriteFile(filename string, data []byte, perm os.FileMode) (err error) { WriterLimiter.Ack() err = os.WriteFile(filename, data, perm) WriterLimiter.Release() return } func OpenFile(name string, flag int, perm os.FileMode) (f *os.File, err error) { if flag&os.O_RDONLY == os.O_RDONLY { ReaderLimiter.Ack() } f, err = os.OpenFile(name, flag, perm) if flag&os.O_RDONLY == os.O_RDONLY { ReaderLimiter.Release() } return } func Open(name string) (f *os.File, err error) { ReaderLimiter.Ack() f, err = os.Open(name) ReaderLimiter.Release() return } // ExistFile 检查文件是否存在 func ExistFile(path string) (bool, error) { stat, err := os.Stat(path) if err != nil { if os.IsNotExist(err) { return false, nil } return false, err } return !stat.IsDir(), nil }