Ejemplo n.º 1
0
        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();
        }