回收站里有几个文件夹死活删不掉,前端报错,点永久删除没反应。查数据库发现那几个文件夹下面还有 4919 条子记录,但 `permanent_delete_file` 只删了顶层 record,子内容全留着。
数据库外键没设级联删除(或者没 CASCADE),所以子记录就变成了孤儿数据,但父级 ID 不存在了,前端又看不到它们,形成了「僵尸文件」。
修复方案:给 `permanent_delete_file` 加 `_delete_descendants` 递归函数,删文件夹时先把所有子内容(含子目录)全递归删干净,再删自身。一次性清完,一劳永逸。