/// <summary> /// 获取切片文件索引 /// </summary> /// <param name="id"></param> /// <returns></returns> public BundleCache this[bundlx id] { get { lock (obj) { return(AddBundleCache(id)); } } }
/// <summary> /// 通过id返回切片缓存 /// </summary> /// <param name="cache"></param> /// <returns></returns> private static BundleCache AddBundleCache(bundlx cache) { string cacheid = cache.id; if (bundleCacheList.Select(e => e.BundleId).ToList().Contains(cacheid)) { //更新最后访问时间 BundleCache tem = bundleCacheList.Where(e => e.BundleId == cacheid).FirstOrDefault(); tem.LastTime = DateTime.Now; changeCache(); return(bundleCacheList.Where(e => e.BundleId == cacheid).FirstOrDefault()); } else { //未添加的文件,写入缓存集合 BundleCache bc = new BundleCache(); bc.BundleId = cache.id; bc.CTime = DateTime.Now; bc.LastTime = DateTime.Now; using (FileStream file = new FileStream(cache.bundlxFileName, FileMode.Open)) { byte[] bufferfile = new byte[file.Length]; file.Read(bufferfile, 0, (int)file.Length); //写入数据 bc.BundlxData = bufferfile; } using (FileStream file = new FileStream(cache.bundleFileName, FileMode.Open)) { byte[] bufferfile = new byte[file.Length]; file.Read(bufferfile, 0, (int)file.Length); //写入数据 bc.BundleData = bufferfile; } bundleCacheList.Add(bc); changeCache(); return(bc); } }