private void Recursion_Delete(FCB rootNode) { //递归删除所有子文件夹 for (int i = 0; i < rootNode.folderSon.Count(); i++) { Recursion_Delete(rootNode.folderSon[i]); } for (int i = 0; i < rootNode.fileSon.Count(); i++) { rootNode.fileSon.Remove(rootNode); disk.RemoveFileContent(rootNode.fileSon[i]); } //释放内存 //尝试直接释放头节点 if (rootNode.father != null) { rootNode.father.folderSon.Remove(rootNode); } disk.RemoveFCB(rootNode); rootNode = null; GC.Collect(); }