diff --git a/internal/caches/list_file.go b/internal/caches/list_file.go index b2c887e..c5d454b 100644 --- a/internal/caches/list_file.go +++ b/internal/caches/list_file.go @@ -379,6 +379,15 @@ func (this *FileList) GetDB(hash string) *FileListDB { return this.dbList[fnv.HashString(hash)%CountFileDB] } +func (this *FileList) HashMapIsLoaded() bool { + for _, db := range this.dbList { + if !db.HashMapIsLoaded() { + return false + } + } + return true +} + func (this *FileList) remove(hash string) (notFound bool, err error) { var db = this.GetDB(hash) diff --git a/internal/caches/storage_file.go b/internal/caches/storage_file.go index 328703a..78d3a69 100644 --- a/internal/caches/storage_file.go +++ b/internal/caches/storage_file.go @@ -1534,6 +1534,10 @@ func (this *FileStorage) subDir(hash string) (dirPath string, dirIsFull bool) { // ScanGarbageCaches 清理目录中“失联”的缓存文件 // “失联”为不在HashMap中的文件 func (this *FileStorage) ScanGarbageCaches(fileCallback func(path string) error) error { + if !this.list.(*FileList).HashMapIsLoaded() { + return errors.New("cache list is loading") + } + var mainDir = this.options.Dir var allDirs = []string{mainDir} var subDirs = this.subDirs // copy