49 lines
987 B
Go
49 lines
987 B
Go
package common
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
|
|
"github.com/krau/SaveAny-Bot/i18n"
|
|
"github.com/krau/SaveAny-Bot/i18n/i18nk"
|
|
)
|
|
|
|
func RmFileAfter(path string, td time.Duration) {
|
|
_, err := os.Stat(path)
|
|
if err != nil {
|
|
Log.Errorf(i18n.T(i18nk.CreateRmTimerFailed, map[string]any{
|
|
"Path": path,
|
|
"Error": err,
|
|
}))
|
|
return
|
|
}
|
|
Log.Debugf(i18n.T(i18nk.RemoveFileAfter, map[string]any{
|
|
"Duration": td.String(),
|
|
"Path": path,
|
|
}))
|
|
time.AfterFunc(td, func() {
|
|
if err := os.Remove(path); err != nil {
|
|
Log.Errorf(i18n.T(i18nk.RemoveFileFailed, map[string]any{
|
|
"Path": path,
|
|
"Error": err,
|
|
}))
|
|
}
|
|
})
|
|
}
|
|
|
|
// 删除目录下的所有内容, 但不删除目录本身
|
|
func RemoveAllInDir(dirPath string) error {
|
|
entries, err := os.ReadDir(dirPath)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, entry := range entries {
|
|
entryPath := filepath.Join(dirPath, entry.Name())
|
|
if err := os.RemoveAll(entryPath); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|