/// <summary> /// 得到被映射后的文件名称,文件不存在返回空 /// </summary> /// <param name="fileName"></param> /// <param name="pos"></param> /// <returns></returns> public string GetMappedFilePath(string fileName, out eFileMapperLoaderPosType pos) { pos = eFileMapperLoaderPosType.None; var info = GetFileInfo(fileName); if (info != null) { UnityFileLoaderHelper.eFileLoaderPosType filePos; var has = UnityFileLoaderHelper.IsFileExist(Dir, info.GetMappedFileName(), out filePos); if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.PersistAsset) { pos = eFileMapperLoaderPosType.MapperAsset_PersistAsset; return(UnityPersistFileHelper.GetPersistAssetFilePath(Dir, info.GetMappedFileName())); } if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.StreamAsset) { pos = eFileMapperLoaderPosType.MapperAsset_StreamAsset; return(UnityStreamingFileHelper.GetStreamAssetFilePath(Dir, info.GetMappedFileName())); } return(string.Empty); } else { UnityFileLoaderHelper.eFileLoaderPosType filePos; var has = UnityFileLoaderHelper.IsFileExist(Dir, fileName, out filePos); if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.PersistAsset) { pos = eFileMapperLoaderPosType.PersistAsset; return(UnityPersistFileHelper.GetPersistAssetFilePath(Dir, fileName)); } if (filePos == UnityFileLoaderHelper.eFileLoaderPosType.StreamAsset) { pos = eFileMapperLoaderPosType.StreamAsset; return(UnityStreamingFileHelper.GetStreamAssetFilePath(Dir, fileName)); } return(string.Empty); } }
public static FileMapSystemTagFindResultHelper FindInfos(FileMapSystem sys, int[] tags) { var res = new FileMapSystemTagFindResultHelper(); res.SearchTags = tags; var dictDowned = new Dictionary <string, int>(); var dictMiss = new Dictionary <string, int>(); foreach (var info in sys.FileInfo.AllFileMapInfo) { if (res.ContainsTag(info.FileTag)) { res.AllInfos.Add(info); var mappedName = info.GetMappedFileName(); UnityFileLoaderHelper.eFileLoaderPosType pos; if (UnityFileLoaderHelper.IsFileExist(sys.Dir, mappedName, out pos)) { if (!dictDowned.ContainsKey(mappedName)) { dictDowned[mappedName] = info.Len; } else { dictDowned[mappedName] = dictDowned[mappedName] + info.Len; } } else { if (!dictMiss.ContainsKey(mappedName)) { dictMiss[mappedName] = info.Len; } else { dictMiss[mappedName] = dictMiss[mappedName] + info.Len; } } } } foreach (var info in dictDowned) { var wd = new WWWFileDownloader.DownloadFileInfo() { FileName = info.Key, FileSize = info.Value }; res.Downloaded.Add(wd); res.DownloadedSize += info.Value; } foreach (var info in dictMiss) { var wd = new WWWFileDownloader.DownloadFileInfo() { FileName = info.Key, FileSize = info.Value }; res.Missed.Add(wd); res.MissedSize += info.Value; } return(res); }