update file system

pull/469/head
何冠峰 2025-02-11 15:09:23 +08:00
parent 5d2d0b4168
commit 3d1a28a50e
4 changed files with 29 additions and 29 deletions

View File

@ -21,7 +21,7 @@ namespace YooAsset
} }
protected readonly Dictionary<string, FileWrapper> _wrappers = new Dictionary<string, FileWrapper>(10000); protected readonly Dictionary<string, FileWrapper> _wrappers = new Dictionary<string, FileWrapper>(10000);
protected readonly Dictionary<string, string> _buildinFilePaths = new Dictionary<string, string>(10000); protected readonly Dictionary<string, string> _buildinFilePathMapping = new Dictionary<string, string>(10000);
protected IFileSystem _unpackFileSystem; protected IFileSystem _unpackFileSystem;
protected string _packageRoot; protected string _packageRoot;
@ -309,10 +309,10 @@ namespace YooAsset
} }
public string GetBuildinFileLoadPath(PackageBundle bundle) public string GetBuildinFileLoadPath(PackageBundle bundle)
{ {
if (_buildinFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) if (_buildinFilePathMapping.TryGetValue(bundle.BundleGUID, out string filePath) == false)
{ {
filePath = PathUtility.Combine(_packageRoot, bundle.FileName); filePath = PathUtility.Combine(_packageRoot, bundle.FileName);
_buildinFilePaths.Add(bundle.BundleGUID, filePath); _buildinFilePathMapping.Add(bundle.BundleGUID, filePath);
} }
return filePath; return filePath;
} }

View File

@ -11,10 +11,10 @@ namespace YooAsset
/// </summary> /// </summary>
internal class DefaultCacheFileSystem : IFileSystem internal class DefaultCacheFileSystem : IFileSystem
{ {
protected readonly Dictionary<string, RecordFileElement> _wrappers = new Dictionary<string, RecordFileElement>(10000); protected readonly Dictionary<string, RecordFileElement> _records = new Dictionary<string, RecordFileElement>(10000);
protected readonly Dictionary<string, string> _bundleDataFilePaths = new Dictionary<string, string>(10000); protected readonly Dictionary<string, string> _bundleDataFilePathMapping = new Dictionary<string, string>(10000);
protected readonly Dictionary<string, string> _bundleInfoFilePaths = new Dictionary<string, string>(10000); protected readonly Dictionary<string, string> _bundleInfoFilePathMapping = new Dictionary<string, string>(10000);
protected readonly Dictionary<string, string> _tempFilePaths = new Dictionary<string, string>(10000); protected readonly Dictionary<string, string> _tempFilePathMapping = new Dictionary<string, string>(10000);
protected DefaultCacheDownloadCenter _downloadCenter; protected DefaultCacheDownloadCenter _downloadCenter;
protected string _packageRoot; protected string _packageRoot;
@ -45,7 +45,7 @@ namespace YooAsset
{ {
get get
{ {
return _wrappers.Count; return _records.Count;
} }
} }
@ -245,7 +245,7 @@ namespace YooAsset
} }
public virtual bool Exists(PackageBundle bundle) public virtual bool Exists(PackageBundle bundle)
{ {
return _wrappers.ContainsKey(bundle.BundleGUID); return _records.ContainsKey(bundle.BundleGUID);
} }
public virtual bool NeedDownload(PackageBundle bundle) public virtual bool NeedDownload(PackageBundle bundle)
{ {
@ -330,60 +330,60 @@ namespace YooAsset
#region 缓存相关 #region 缓存相关
public List<string> GetAllCachedBundleGUIDs() public List<string> GetAllCachedBundleGUIDs()
{ {
return _wrappers.Keys.ToList(); return _records.Keys.ToList();
} }
public string GetTempFilePath(PackageBundle bundle) public string GetTempFilePath(PackageBundle bundle)
{ {
if (_tempFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) if (_tempFilePathMapping.TryGetValue(bundle.BundleGUID, out string filePath) == false)
{ {
filePath = PathUtility.Combine(_tempFilesRoot, bundle.BundleGUID); filePath = PathUtility.Combine(_tempFilesRoot, bundle.BundleGUID);
_tempFilePaths.Add(bundle.BundleGUID, filePath); _tempFilePathMapping.Add(bundle.BundleGUID, filePath);
} }
return filePath; return filePath;
} }
public string GetBundleDataFilePath(PackageBundle bundle) public string GetBundleDataFilePath(PackageBundle bundle)
{ {
if (_bundleDataFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) if (_bundleDataFilePathMapping.TryGetValue(bundle.BundleGUID, out string filePath) == false)
{ {
string folderName = bundle.FileHash.Substring(0, 2); string folderName = bundle.FileHash.Substring(0, 2);
filePath = PathUtility.Combine(_cacheBundleFilesRoot, folderName, bundle.BundleGUID, DefaultCacheFileSystemDefine.BundleDataFileName); filePath = PathUtility.Combine(_cacheBundleFilesRoot, folderName, bundle.BundleGUID, DefaultCacheFileSystemDefine.BundleDataFileName);
if (AppendFileExtension) if (AppendFileExtension)
filePath += bundle.FileExtension; filePath += bundle.FileExtension;
_bundleDataFilePaths.Add(bundle.BundleGUID, filePath); _bundleDataFilePathMapping.Add(bundle.BundleGUID, filePath);
} }
return filePath; return filePath;
} }
public string GetBundleInfoFilePath(PackageBundle bundle) public string GetBundleInfoFilePath(PackageBundle bundle)
{ {
if (_bundleInfoFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) if (_bundleInfoFilePathMapping.TryGetValue(bundle.BundleGUID, out string filePath) == false)
{ {
string folderName = bundle.FileHash.Substring(0, 2); string folderName = bundle.FileHash.Substring(0, 2);
filePath = PathUtility.Combine(_cacheBundleFilesRoot, folderName, bundle.BundleGUID, DefaultCacheFileSystemDefine.BundleInfoFileName); filePath = PathUtility.Combine(_cacheBundleFilesRoot, folderName, bundle.BundleGUID, DefaultCacheFileSystemDefine.BundleInfoFileName);
_bundleInfoFilePaths.Add(bundle.BundleGUID, filePath); _bundleInfoFilePathMapping.Add(bundle.BundleGUID, filePath);
} }
return filePath; return filePath;
} }
public bool IsRecordBundleFile(string bundleGUID) public bool IsRecordBundleFile(string bundleGUID)
{ {
return _wrappers.ContainsKey(bundleGUID); return _records.ContainsKey(bundleGUID);
} }
public bool RecordBundleFile(string bundleGUID, RecordFileElement element) public bool RecordBundleFile(string bundleGUID, RecordFileElement element)
{ {
if (_wrappers.ContainsKey(bundleGUID)) if (_records.ContainsKey(bundleGUID))
{ {
YooLogger.Error($"{nameof(DefaultCacheFileSystem)} has element : {bundleGUID}"); YooLogger.Error($"{nameof(DefaultCacheFileSystem)} has element : {bundleGUID}");
return false; return false;
} }
_wrappers.Add(bundleGUID, element); _records.Add(bundleGUID, element);
return true; return true;
} }
public EFileVerifyResult VerifyCacheFile(PackageBundle bundle) public EFileVerifyResult VerifyCacheFile(PackageBundle bundle)
{ {
if (_wrappers.TryGetValue(bundle.BundleGUID, out RecordFileElement wrapper) == false) if (_records.TryGetValue(bundle.BundleGUID, out RecordFileElement wrapper) == false)
return EFileVerifyResult.CacheNotFound; return EFileVerifyResult.CacheNotFound;
EFileVerifyResult result = FileVerifyHelper.FileVerify(wrapper.DataFilePath, wrapper.DataFileSize, wrapper.DataFileCRC, EFileVerifyLevel.High); EFileVerifyResult result = FileVerifyHelper.FileVerify(wrapper.DataFilePath, wrapper.DataFileSize, wrapper.DataFileCRC, EFileVerifyLevel.High);
@ -391,7 +391,7 @@ namespace YooAsset
} }
public bool WriteCacheBundleFile(PackageBundle bundle, string copyPath) public bool WriteCacheBundleFile(PackageBundle bundle, string copyPath)
{ {
if (_wrappers.ContainsKey(bundle.BundleGUID)) if (_records.ContainsKey(bundle.BundleGUID))
{ {
throw new Exception("Should never get here !"); throw new Exception("Should never get here !");
} }
@ -426,7 +426,7 @@ namespace YooAsset
} }
public bool DeleteCacheBundleFile(string bundleGUID) public bool DeleteCacheBundleFile(string bundleGUID)
{ {
if (_wrappers.TryGetValue(bundleGUID, out RecordFileElement wrapper)) if (_records.TryGetValue(bundleGUID, out RecordFileElement wrapper))
{ {
try try
{ {
@ -434,7 +434,7 @@ namespace YooAsset
FileInfo fileInfo = new FileInfo(dataFilePath); FileInfo fileInfo = new FileInfo(dataFilePath);
if (fileInfo.Exists) if (fileInfo.Exists)
fileInfo.Directory.Delete(true); fileInfo.Directory.Delete(true);
_wrappers.Remove(bundleGUID); _records.Remove(bundleGUID);
return true; return true;
} }
catch (Exception e) catch (Exception e)

View File

@ -21,7 +21,7 @@ namespace YooAsset
} }
protected readonly Dictionary<string, FileWrapper> _wrappers = new Dictionary<string, FileWrapper>(10000); protected readonly Dictionary<string, FileWrapper> _wrappers = new Dictionary<string, FileWrapper>(10000);
protected readonly Dictionary<string, string> _webFilePaths = new Dictionary<string, string>(10000); protected readonly Dictionary<string, string> _webFilePathMapping = new Dictionary<string, string>(10000);
protected string _webPackageRoot = string.Empty; protected string _webPackageRoot = string.Empty;
/// <summary> /// <summary>
@ -173,10 +173,10 @@ namespace YooAsset
} }
public string GetWebFileLoadPath(PackageBundle bundle) public string GetWebFileLoadPath(PackageBundle bundle)
{ {
if (_webFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) if (_webFilePathMapping.TryGetValue(bundle.BundleGUID, out string filePath) == false)
{ {
filePath = PathUtility.Combine(_webPackageRoot, bundle.FileName); filePath = PathUtility.Combine(_webPackageRoot, bundle.FileName);
_webFilePaths.Add(bundle.BundleGUID, filePath); _webFilePathMapping.Add(bundle.BundleGUID, filePath);
} }
return filePath; return filePath;
} }

View File

@ -20,7 +20,7 @@ namespace YooAsset
/// <summary> /// <summary>
/// 初始化缓存系统 /// 初始化文件系统
/// </summary> /// </summary>
FSInitializeFileSystemOperation InitializeFileSystemAsync(); FSInitializeFileSystemOperation InitializeFileSystemAsync();
@ -30,7 +30,7 @@ namespace YooAsset
FSLoadPackageManifestOperation LoadPackageManifestAsync(string packageVersion, int timeout); FSLoadPackageManifestOperation LoadPackageManifestAsync(string packageVersion, int timeout);
/// <summary> /// <summary>
/// 查询最新的版本 /// 查询包裹版本
/// </summary> /// </summary>
FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout); FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout);
@ -40,7 +40,7 @@ namespace YooAsset
FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam); FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam);
/// <summary> /// <summary>
/// 下载远端文件 /// 下载Bundle文件
/// </summary> /// </summary>
FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param); FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param);