/// <summary> /// 释放资源 /// </summary> public void Clear() { if (AllFileNodeX != null) { AllFileNodeX.Clear(); } if (GetUserPartitionFiles != null) { GetUserPartitionFiles.Clear(); } Asyn = null; }
/// <summary> /// 创建数据字典 /// </summary> /// <param name="linkInfo"></param> /// <returns></returns> public Dictionary <ulong, ICollection <FNodeX> > BuildDataDictionary(LINK_DIR_FILE_NODE_INFO linkInfo) { var data = new Dictionary <ulong, ICollection <FNodeX> >(); while (linkInfo.next != IntPtr.Zero) { linkInfo = linkInfo.next.ToStruct <LINK_DIR_FILE_NODE_INFO>(); if (linkInfo.NodeDataInfo.FileId == linkInfo.NodeDataInfo.ParentFileId) { continue; } ulong parentId = linkInfo.NodeDataInfo.ParentFileId; FNodeX file = BuildFileXNode(linkInfo.NodeDataInfo); if (data.ContainsKey(parentId)) { if (!file.IsDelete) { data[parentId].Add(file); } } else { data.Add(parentId, new Collection <FNodeX> { file }); } if (RunPartition.VolName != null && RunPartition.VolName.Equals("userdata", StringComparison.OrdinalIgnoreCase)) { GetUserPartitionFiles.Add(file); } AllFileNodeX.Add(file); } foreach (var nfid in _delFolderIdSet) { if (_normalFolderIdSet.Contains(nfid)) { _problemFolderIdSet.Add(nfid); } } return(data); }