Files
EdgeNode/internal/utils/fs/os.go
GoEdgeLab c19be78e0d v1.4.1
2024-07-27 15:42:50 +08:00

69 lines
1.3 KiB
Go

// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
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
}