From 4502a3b13292aadb367e82e6f6e21a2a01636f48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Tue, 25 May 2021 18:28:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E6=B8=85=E7=A9=BA=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E7=9B=AE=E5=BD=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/caches/storage_file.go | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/internal/caches/storage_file.go b/internal/caches/storage_file.go index 0c6af3e..fd7837c 100644 --- a/internal/caches/storage_file.go +++ b/internal/caches/storage_file.go @@ -435,6 +435,7 @@ func (this *FileStorage) CleanAll() error { return nil } + // 改成待删除 subDirs, err := fp.Readdir(-1) if err != nil { return err @@ -451,7 +452,33 @@ func (this *FileStorage) CleanAll() error { continue } - // 删除目录 + // 修改目录名 + tmpDir := dir + "/" + subDir + "-deleted" + err = os.Rename(dir+"/"+subDir, tmpDir) + if err != nil { + return err + } + } + + // 重新遍历待删除 + fp2, err := os.Open(dir) + if err != nil { + return err + } + defer func() { + _ = fp2.Close() + }() + subDirs, err = fp2.Readdir(-1) + if err != nil { + return err + } + for _, info := range subDirs { + subDir := info.Name() + if !strings.HasSuffix(subDir, "-deleted") { + continue + } + + // 删除 err = os.RemoveAll(dir + "/" + subDir) if err != nil { return err