From 51b362c18f8a794f70cb81dad0259c12d9ec6669 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sun, 1 Feb 2026 16:33:57 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/11569#issuecomment-3830601722 --- kernel/model/attribute_view.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index ebf46513b..5bcf8fe1a 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -177,11 +177,18 @@ func UnusedAttributeViews() (ret []*UnusedItem) { } // 按文件更新时间排序 + modTimes := make([]time.Time, len(ret)) + for i := range ret { + p := filepath.Join(util.DataDir, "storage", "av", ret[i].Item+".json") + if info, statErr := os.Stat(p); nil != statErr { + modTimes[i] = info.ModTime() + } else { + modTimes[i] = time.Time{} + } + } sort.Slice(ret, func(i, j int) bool { - iInfo, iErr := os.Stat(filepath.Join(util.DataDir, "storage", "av", ret[i].Item+".json")) - jInfo, jErr := os.Stat(filepath.Join(util.DataDir, "storage", "av", ret[j].Item+".json")) - if iErr != nil || jErr != nil { - return iInfo.ModTime().After(jInfo.ModTime()) + if !modTimes[i].Equal(modTimes[j]) { + return modTimes[i].After(modTimes[j]) } return ret[i].Item > ret[j].Item })