mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-03 23:20:25 +08:00
69 lines
1.3 KiB
Go
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
|
|
}
|