From 278b6e3cc812217293f675389bf4f69727e38cac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Fri, 3 Jan 2025 15:08:57 +0800 Subject: [PATCH] fix #429 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ClearCacheBundleFilesAsync重命名为ClearCacheFilesAsync --- .../DownloadDefine.cs} | 0 .../DownloadDefine.cs.meta} | 0 .../FileSystem/CacheSystem/Interface.meta | 8 - .../CacheSystem/Interface/ICacheSystem.cs | 67 ------- .../FileSystem/CacheSystem/Operation.meta | 8 - .../DefaultBuildinFileSystem.cs | 4 +- .../DefaultCacheDownloadCenter.cs | 4 +- .../DefaultCacheFileSystem.cs | 178 ++++++++++-------- .../DefaultCacheFileSystemDefine.cs | 18 +- .../Elements.meta} | 0 .../Elements/RecordFileElement.cs} | 4 +- .../Elements/RecordFileElement.cs.meta} | 0 .../Elements}/TempFileElement.cs | 0 .../Elements}/TempFileElement.cs.meta | 0 .../Elements/VerifyFileElement.cs} | 4 +- .../Elements/VerifyFileElement.cs.meta} | 0 .../Operation/DCFSInitializeOperation.cs | 4 +- .../Operation/DCFSLoadBundleOperation.cs | 10 +- .../ClearAllCacheBundleFilesOperation.cs} | 12 +- ...ClearAllCacheBundleFilesOperation.cs.meta} | 0 .../ClearAllCacheManifestFilesOperation.cs | 63 +++++++ ...earAllCacheManifestFilesOperation.cs.meta} | 2 +- .../ClearCacheBundleFilesByTagsOperaiton.cs} | 12 +- ...arCacheBundleFilesByTagsOperaiton.cs.meta} | 0 .../ClearUnusedCacheBundleFilesOperation.cs} | 12 +- ...arUnusedCacheBundleFilesOperation.cs.meta} | 0 .../ClearUnusedCacheManifestFilesOperation.cs | 70 +++++++ ...rUnusedCacheManifestFilesOperation.cs.meta | 11 ++ .../internal}/DownloadHandlerFileRange.cs | 0 .../DownloadHandlerFileRange.cs.meta | 0 .../internal}/DownloadNormalFileOperation.cs | 10 +- .../DownloadNormalFileOperation.cs.meta | 0 .../internal}/DownloadResumeFileOperation.cs | 16 +- .../DownloadResumeFileOperation.cs.meta | 0 .../internal}/SearchCacheFilesOperation.cs | 26 ++- .../SearchCacheFilesOperation.cs.meta | 0 .../internal}/VerifyCacheFilesOperation.cs | 31 ++- .../VerifyCacheFilesOperation.cs.meta | 0 .../internal}/VerifyTempFileOperation.cs | 0 .../internal}/VerifyTempFileOperation.cs.meta | 0 .../DefaultEditorFileSystem.cs | 4 +- .../DefaultUnpackFileSystem.cs | 4 +- .../DefaultWebRemoteFileSystem.cs | 4 +- .../DefaultWebServerFileSystem.cs | 4 +- .../Runtime/FileSystem/EFileClearMode.cs | 17 +- .../FileSystem/Interface/IFileSystem.cs | 6 +- ...ation.cs => FSClearCacheFilesOperation.cs} | 10 +- ...eta => FSClearCacheFilesOperation.cs.meta} | 0 .../ResourcePackage/Interface/IPlayMode.cs | 2 +- ...eration.cs => ClearCacheFilesOperation.cs} | 48 ++--- ....meta => ClearCacheFilesOperation.cs.meta} | 0 .../PlayMode/EditorSimulateModeImpl.cs | 4 +- .../PlayMode/HostPlayModeImpl.cs | 4 +- .../PlayMode/OfflinePlayModeImpl.cs | 4 +- .../PlayMode/WebPlayModeImpl.cs | 4 +- .../ResourcePackage/ResourcePackage.cs | 13 +- 56 files changed, 392 insertions(+), 310 deletions(-) rename Assets/YooAsset/Runtime/{ResourcePackage/Operation/DownloaderDefine.cs => DownloadSystem/DownloadDefine.cs} (100%) rename Assets/YooAsset/Runtime/{ResourcePackage/Operation/DownloaderDefine.cs.meta => DownloadSystem/DownloadDefine.cs.meta} (100%) delete mode 100644 Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface.meta delete mode 100644 Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface/ICacheSystem.cs delete mode 100644 Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation.meta rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem.meta => DefaultCacheFileSystem/Elements.meta} (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/CacheWrapper.cs => DefaultCacheFileSystem/Elements/RecordFileElement.cs} (74%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/CacheWrapper.cs.meta => DefaultCacheFileSystem/Elements/RecordFileElement.cs.meta} (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem => DefaultCacheFileSystem/Elements}/TempFileElement.cs (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem => DefaultCacheFileSystem/Elements}/TempFileElement.cs.meta (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/CacheFileElement.cs => DefaultCacheFileSystem/Elements/VerifyFileElement.cs} (85%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/CacheFileElement.cs.meta => DefaultCacheFileSystem/Elements/VerifyFileElement.cs.meta} (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation/ClearAllCacheFilesOperation.cs => DefaultCacheFileSystem/Operation/internal/ClearAllCacheBundleFilesOperation.cs} (80%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation/ClearAllCacheFilesOperation.cs.meta => DefaultCacheFileSystem/Operation/internal/ClearAllCacheBundleFilesOperation.cs.meta} (100%) create mode 100644 Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheManifestFilesOperation.cs rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Interface/ICacheSystem.cs.meta => DefaultCacheFileSystem/Operation/internal/ClearAllCacheManifestFilesOperation.cs.meta} (83%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation/ClearCacheFilesByTagsOperaiton.cs => DefaultCacheFileSystem/Operation/internal/ClearCacheBundleFilesByTagsOperaiton.cs} (88%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation/ClearCacheFilesByTagsOperaiton.cs.meta => DefaultCacheFileSystem/Operation/internal/ClearCacheBundleFilesByTagsOperaiton.cs.meta} (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation/ClearUnusedCacheFilesOperation.cs => DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheBundleFilesOperation.cs} (83%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation/ClearUnusedCacheFilesOperation.cs.meta => DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheBundleFilesOperation.cs.meta} (100%) create mode 100644 Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheManifestFilesOperation.cs create mode 100644 Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheManifestFilesOperation.cs.meta rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/DownloadHandlerFileRange.cs (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/DownloadHandlerFileRange.cs.meta (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/DownloadNormalFileOperation.cs (93%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/DownloadNormalFileOperation.cs.meta (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/DownloadResumeFileOperation.cs (92%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/DownloadResumeFileOperation.cs.meta (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/SearchCacheFilesOperation.cs (80%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/SearchCacheFilesOperation.cs.meta (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/VerifyCacheFilesOperation.cs (82%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/VerifyCacheFilesOperation.cs.meta (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/VerifyTempFileOperation.cs (100%) rename Assets/YooAsset/Runtime/FileSystem/{CacheSystem/Operation => DefaultCacheFileSystem/Operation/internal}/VerifyTempFileOperation.cs.meta (100%) rename Assets/YooAsset/Runtime/FileSystem/Operation/{FSClearCacheBundleFilesOperation.cs => FSClearCacheFilesOperation.cs} (61%) rename Assets/YooAsset/Runtime/FileSystem/Operation/{FSClearCacheBundleFilesOperation.cs.meta => FSClearCacheFilesOperation.cs.meta} (100%) rename Assets/YooAsset/Runtime/ResourcePackage/Operation/{ClearCacheBundleFilesOperation.cs => ClearCacheFilesOperation.cs} (57%) rename Assets/YooAsset/Runtime/ResourcePackage/Operation/{ClearCacheBundleFilesOperation.cs.meta => ClearCacheFilesOperation.cs.meta} (100%) diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/DownloaderDefine.cs b/Assets/YooAsset/Runtime/DownloadSystem/DownloadDefine.cs similarity index 100% rename from Assets/YooAsset/Runtime/ResourcePackage/Operation/DownloaderDefine.cs rename to Assets/YooAsset/Runtime/DownloadSystem/DownloadDefine.cs diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/DownloaderDefine.cs.meta b/Assets/YooAsset/Runtime/DownloadSystem/DownloadDefine.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/ResourcePackage/Operation/DownloaderDefine.cs.meta rename to Assets/YooAsset/Runtime/DownloadSystem/DownloadDefine.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface.meta b/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface.meta deleted file mode 100644 index 4b0f190e..00000000 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: ce78de82d3ce1a841a1e6bad099e0bab -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface/ICacheSystem.cs b/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface/ICacheSystem.cs deleted file mode 100644 index 47681a43..00000000 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface/ICacheSystem.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System.Collections.Generic; - -namespace YooAsset -{ - internal interface ICacheSystem - { - /// - /// 获取缓存文件的根目录 - /// - string GetCacheFileRoot(); - - /// - /// 获取临时缓存文件路径 - /// - string GetTempFilePath(PackageBundle bundle); - - /// - /// 获取数据文件路径 - /// - string GetDataFilePath(PackageBundle bundle); - - /// - /// 获取信息文件路径 - /// - string GetInfoFilePath(PackageBundle bundle); - - /// - /// 获取所有缓存文件的GUID - /// - List GetAllCachedBundleGUIDs(); - - /// - /// 是否记录了文件 - /// - bool IsRecordFile(string bundleGUID); - - /// - /// 记录指定文件 - /// - bool RecordFile(string bundleGUID, CacheWrapper wrapper); - - /// - /// 验证缓存文件 - /// - EFileVerifyResult VerifyCacheFile(PackageBundle bundle); - - /// - /// 写入缓存文件 - /// - bool WriteCacheFile(PackageBundle bundle, string copyPath); - - /// - /// 删除缓存文件 - /// - bool DeleteCacheFile(string bundleGUID); - - /// - /// 写入文件信息 - /// - void WriteInfoFile(string filePath, string dataFileCRC, long dataFileSize); - - /// - /// 读取文件信息 - /// - void ReadInfoFile(string filePath, out string dataFileCRC, out long dataFileSize); - } -} \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation.meta b/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation.meta deleted file mode 100644 index a4bf8578..00000000 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 8cae5a51fced527429445b140b8a0843 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs index a5a3b9b0..794e743d 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs @@ -96,9 +96,9 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - public virtual FSClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) { - return _unpackFileSystem.ClearCacheBundleFilesAsync(manifest, clearMode, clearParam); + return _unpackFileSystem.ClearCacheFilesAsync(manifest, clearMode, clearParam); } public virtual FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param) { diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs index 864d3917..d4dd78cf 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs @@ -100,13 +100,13 @@ namespace YooAsset DefaultDownloadFileOperation newDownloader; if (bundle.FileSize >= _fileSystem.ResumeDownloadMinimumSize) { - newDownloader = new DownloadResumeFileOperation(_fileSystem, _fileSystem, bundle, param, _fileSystem.ResumeDownloadResponseCodes); + newDownloader = new DownloadResumeFileOperation(_fileSystem, bundle, param); newDownloader.Reference(); _downloaders.Add(bundle.BundleGUID, newDownloader); } else { - newDownloader = new DownloadNormalFileOperation(_fileSystem, _fileSystem, bundle, param); + newDownloader = new DownloadNormalFileOperation(_fileSystem, bundle, param); newDownloader.Reference(); _downloaders.Add(bundle.BundleGUID, newDownloader); } diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs index 999a41f1..8374c5d3 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs @@ -2,7 +2,6 @@ using System.IO; using System.Collections.Generic; using System.Linq; -using UnityEngine; namespace YooAsset { @@ -10,18 +9,18 @@ namespace YooAsset /// 缓存文件系统 /// 说明:正在进行的下载器会在ResourcePackage销毁的时候执行Abort操作! /// - internal class DefaultCacheFileSystem : IFileSystem, ICacheSystem + internal class DefaultCacheFileSystem : IFileSystem { - protected readonly Dictionary _wrappers = new Dictionary(10000); - protected readonly Dictionary _dataFilePaths = new Dictionary(10000); - protected readonly Dictionary _infoFilePaths = new Dictionary(10000); + protected readonly Dictionary _wrappers = new Dictionary(10000); + protected readonly Dictionary _bundleDataFilePaths = new Dictionary(10000); + protected readonly Dictionary _bundleInfoFilePaths = new Dictionary(10000); protected readonly Dictionary _tempFilePaths = new Dictionary(10000); protected DefaultCacheDownloadCenter _downloadCenter; protected string _packageRoot; - protected string _cacheFileRoot; - protected string _tempFileRoot; - protected string _manifestFileRoot; + protected string _tempFilesRoot; + protected string _cacheBundleFilesRoot; + protected string _cacheManifestFilesRoot; /// /// 包裹名称 @@ -114,30 +113,42 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - public virtual FSClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) { if (clearMode == EFileClearMode.ClearAllBundleFiles.ToString()) { - var operation = new ClearAllCacheFilesOperation(this); + var operation = new ClearAllCacheBundleFilesOperation(this); OperationSystem.StartOperation(PackageName, operation); return operation; } else if (clearMode == EFileClearMode.ClearUnusedBundleFiles.ToString()) { - var operation = new ClearUnusedCacheFilesOperation(this, manifest); + var operation = new ClearUnusedCacheBundleFilesOperation(this, manifest); OperationSystem.StartOperation(PackageName, operation); return operation; } else if (clearMode == EFileClearMode.ClearBundleFilesByTags.ToString()) { - var operation = new ClearCacheFilesByTagsOperaiton(this, manifest, clearParam); + var operation = new ClearCacheBundleFilesByTagsOperaiton(this, manifest, clearParam); + OperationSystem.StartOperation(PackageName, operation); + return operation; + } + else if (clearMode == EFileClearMode.ClearAllManifestFiles.ToString()) + { + var operation = new ClearAllCacheManifestFilesOperation(this); + OperationSystem.StartOperation(PackageName, operation); + return operation; + } + else if (clearMode == EFileClearMode.ClearUnusedManifestFiles.ToString()) + { + var operation = new ClearUnusedCacheManifestFilesOperation(this, manifest); OperationSystem.StartOperation(PackageName, operation); return operation; } else { string error = $"Invalid clear mode : {clearMode}"; - var operation = new FSClearCacheBundleFilesCompleteOperation(error); + var operation = new FSClearCacheFilesCompleteOperation(error); OperationSystem.StartOperation(PackageName, operation); return operation; } @@ -217,9 +228,9 @@ namespace YooAsset else _packageRoot = packageRoot; - _cacheFileRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.SaveFilesFolderName); - _tempFileRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.TempFilesFolderName); - _manifestFileRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.ManifestFilesFolderName); + _cacheBundleFilesRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.BundleFilesFolderName); + _tempFilesRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.TempFilesFolderName); + _cacheManifestFilesRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.ManifestFilesFolderName); _downloadCenter = new DefaultCacheDownloadCenter(this); } public virtual void OnUpdate() @@ -257,7 +268,7 @@ namespace YooAsset public virtual string GetBundleFilePath(PackageBundle bundle) { - return GetCacheFileLoadPath(bundle); + return GetCacheBundleFileLoadPath(bundle); } public virtual byte[] ReadBundleFileData(PackageBundle bundle) { @@ -272,7 +283,7 @@ namespace YooAsset return null; } - string filePath = GetCacheFileLoadPath(bundle); + string filePath = GetCacheBundleFileLoadPath(bundle); var fileInfo = new DecryptFileInfo() { BundleName = bundle.BundleName, @@ -283,7 +294,7 @@ namespace YooAsset } else { - string filePath = GetCacheFileLoadPath(bundle); + string filePath = GetCacheBundleFileLoadPath(bundle); return FileUtility.ReadAllBytes(filePath); } } @@ -300,7 +311,7 @@ namespace YooAsset return null; } - string filePath = GetCacheFileLoadPath(bundle); + string filePath = GetCacheBundleFileLoadPath(bundle); var fileInfo = new DecryptFileInfo() { BundleName = bundle.BundleName, @@ -311,85 +322,82 @@ namespace YooAsset } else { - string filePath = GetCacheFileLoadPath(bundle); + string filePath = GetCacheBundleFileLoadPath(bundle); return FileUtility.ReadAllText(filePath); } } - #region 缓存系统 - public string GetCacheFileRoot() - { - return _cacheFileRoot; - } - public string GetTempFilePath(PackageBundle bundle) - { - if (_tempFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) - { - filePath = PathUtility.Combine(_tempFileRoot, bundle.BundleGUID); - _tempFilePaths.Add(bundle.BundleGUID, filePath); - } - return filePath; - } - public string GetDataFilePath(PackageBundle bundle) - { - if (_dataFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) - { - string folderName = bundle.FileHash.Substring(0, 2); - filePath = PathUtility.Combine(_cacheFileRoot, folderName, bundle.BundleGUID, DefaultCacheFileSystemDefine.SaveBundleDataFileName); - if (AppendFileExtension) - filePath += bundle.FileExtension; - _dataFilePaths.Add(bundle.BundleGUID, filePath); - } - return filePath; - } - public string GetInfoFilePath(PackageBundle bundle) - { - if (_infoFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) - { - string folderName = bundle.FileHash.Substring(0, 2); - filePath = PathUtility.Combine(_cacheFileRoot, folderName, bundle.BundleGUID, DefaultCacheFileSystemDefine.SaveBundleInfoFileName); - _infoFilePaths.Add(bundle.BundleGUID, filePath); - } - return filePath; - } + #region 缓存相关 public List GetAllCachedBundleGUIDs() { return _wrappers.Keys.ToList(); } - public bool IsRecordFile(string bundleGUID) + public string GetTempFilePath(PackageBundle bundle) + { + if (_tempFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) + { + filePath = PathUtility.Combine(_tempFilesRoot, bundle.BundleGUID); + _tempFilePaths.Add(bundle.BundleGUID, filePath); + } + return filePath; + } + public string GetBundleDataFilePath(PackageBundle bundle) + { + if (_bundleDataFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) + { + string folderName = bundle.FileHash.Substring(0, 2); + filePath = PathUtility.Combine(_cacheBundleFilesRoot, folderName, bundle.BundleGUID, DefaultCacheFileSystemDefine.BundleDataFileName); + if (AppendFileExtension) + filePath += bundle.FileExtension; + _bundleDataFilePaths.Add(bundle.BundleGUID, filePath); + } + return filePath; + } + public string GetBundleInfoFilePath(PackageBundle bundle) + { + if (_bundleInfoFilePaths.TryGetValue(bundle.BundleGUID, out string filePath) == false) + { + string folderName = bundle.FileHash.Substring(0, 2); + filePath = PathUtility.Combine(_cacheBundleFilesRoot, folderName, bundle.BundleGUID, DefaultCacheFileSystemDefine.BundleInfoFileName); + _bundleInfoFilePaths.Add(bundle.BundleGUID, filePath); + } + return filePath; + } + + public bool IsRecordBundleFile(string bundleGUID) { return _wrappers.ContainsKey(bundleGUID); } - public bool RecordFile(string bundleGUID, CacheWrapper wrapper) + public bool RecordBundleFile(string bundleGUID, RecordFileElement element) { if (_wrappers.ContainsKey(bundleGUID)) { - YooLogger.Error($"{nameof(DefaultCacheFileSystem)} has element : {bundleGUID}"); + YooLogger.Error($"{nameof(DefaultCacheFileSystem)} has record file element : {bundleGUID}"); return false; } - _wrappers.Add(bundleGUID, wrapper); + _wrappers.Add(bundleGUID, element); return true; } public EFileVerifyResult VerifyCacheFile(PackageBundle bundle) { - if (_wrappers.TryGetValue(bundle.BundleGUID, out CacheWrapper wrapper) == false) + if (_wrappers.TryGetValue(bundle.BundleGUID, out RecordFileElement wrapper) == false) return EFileVerifyResult.CacheNotFound; EFileVerifyResult result = FileVerifyHelper.FileVerify(wrapper.DataFilePath, wrapper.DataFileSize, wrapper.DataFileCRC, EFileVerifyLevel.High); return result; } - public bool WriteCacheFile(PackageBundle bundle, string copyPath) + public bool WriteCacheBundleFile(PackageBundle bundle, string copyPath) { if (_wrappers.ContainsKey(bundle.BundleGUID)) { throw new Exception("Should never get here !"); } - string infoFilePath = GetInfoFilePath(bundle); - string dataFilePath = GetDataFilePath(bundle); + string infoFilePath = GetBundleInfoFilePath(bundle); + string dataFilePath = GetBundleDataFilePath(bundle); try { @@ -405,7 +413,7 @@ namespace YooAsset fileInfo.CopyTo(dataFilePath); // 写入文件信息 - WriteInfoFile(infoFilePath, bundle.FileCRC, bundle.FileSize); + WriteBundleInfoFile(infoFilePath, bundle.FileCRC, bundle.FileSize); } catch (Exception e) { @@ -413,12 +421,12 @@ namespace YooAsset return false; } - var wrapper = new CacheWrapper(infoFilePath, dataFilePath, bundle.FileCRC, bundle.FileSize); - return RecordFile(bundle.BundleGUID, wrapper); + var recordFileElement = new RecordFileElement(infoFilePath, dataFilePath, bundle.FileCRC, bundle.FileSize); + return RecordBundleFile(bundle.BundleGUID, recordFileElement); } - public bool DeleteCacheFile(string bundleGUID) + public bool DeleteCacheBundleFile(string bundleGUID) { - if (_wrappers.TryGetValue(bundleGUID, out CacheWrapper wrapper)) + if (_wrappers.TryGetValue(bundleGUID, out RecordFileElement wrapper)) { try { @@ -442,7 +450,7 @@ namespace YooAsset } private readonly BufferWriter _sharedBuffer = new BufferWriter(1024); - public void WriteInfoFile(string filePath, string dataFileCRC, long dataFileSize) + public void WriteBundleInfoFile(string filePath, string dataFileCRC, long dataFileSize) { using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.Read)) { @@ -453,7 +461,7 @@ namespace YooAsset fs.Flush(); } } - public void ReadInfoFile(string filePath, out string dataFileCRC, out long dataFileSize) + public void ReadBundleInfoFile(string filePath, out string dataFileCRC, out long dataFileSize) { byte[] binaryData = FileUtility.ReadAllBytes(filePath); BufferReader buffer = new BufferReader(binaryData); @@ -477,23 +485,31 @@ namespace YooAsset return PathUtility.Combine(rootDirectory, packageName); } - public string GetCacheFileLoadPath(PackageBundle bundle) + public string GetCacheBundleFileLoadPath(PackageBundle bundle) { - return GetDataFilePath(bundle); + return GetBundleDataFilePath(bundle); } public string GetCachePackageHashFilePath(string packageVersion) { string fileName = YooAssetSettingsData.GetPackageHashFileName(PackageName, packageVersion); - return PathUtility.Combine(_manifestFileRoot, fileName); + return PathUtility.Combine(_cacheManifestFilesRoot, fileName); } public string GetCachePackageManifestFilePath(string packageVersion) { string fileName = YooAssetSettingsData.GetManifestBinaryFileName(PackageName, packageVersion); - return PathUtility.Combine(_manifestFileRoot, fileName); + return PathUtility.Combine(_cacheManifestFilesRoot, fileName); } public string GetSandboxAppFootPrintFilePath() { - return PathUtility.Combine(_manifestFileRoot, DefaultCacheFileSystemDefine.AppFootPrintFileName); + return PathUtility.Combine(_cacheManifestFilesRoot, DefaultCacheFileSystemDefine.AppFootPrintFileName); + } + public string GetCacheBundleFilesRoot() + { + return _cacheBundleFilesRoot; + } + public string GetCacheManifestFilesRoot() + { + return _cacheManifestFilesRoot; } /// @@ -501,9 +517,9 @@ namespace YooAsset /// public void DeleteAllManifestFiles() { - if (Directory.Exists(_manifestFileRoot)) + if (Directory.Exists(_cacheManifestFilesRoot)) { - Directory.Delete(_manifestFileRoot, true); + Directory.Delete(_cacheManifestFilesRoot, true); } } @@ -512,7 +528,7 @@ namespace YooAsset /// public DecryptResult LoadEncryptedAssetBundle(PackageBundle bundle) { - string filePath = GetCacheFileLoadPath(bundle); + string filePath = GetCacheBundleFileLoadPath(bundle); var fileInfo = new DecryptFileInfo() { BundleName = bundle.BundleName, @@ -527,7 +543,7 @@ namespace YooAsset /// public DecryptResult LoadEncryptedAssetBundleAsync(PackageBundle bundle) { - string filePath = GetCacheFileLoadPath(bundle); + string filePath = GetCacheBundleFileLoadPath(bundle); var fileInfo = new DecryptFileInfo() { BundleName = bundle.BundleName, diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystemDefine.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystemDefine.cs index c607cdb6..f9bb4053 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystemDefine.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystemDefine.cs @@ -4,27 +4,27 @@ namespace YooAsset internal class DefaultCacheFileSystemDefine { /// - /// 保存的数据文件名称 + /// 数据文件名称 /// - public const string SaveBundleDataFileName = "__data"; + public const string BundleDataFileName = "__data"; /// - /// 保存的信息文件名称 + /// 信息文件名称 /// - public const string SaveBundleInfoFileName = "__info"; + public const string BundleInfoFileName = "__info"; /// - /// 保存的资源文件的文件夹名称 + /// 资源文件的文件夹名称 /// - public const string SaveFilesFolderName = "CacheFiles"; + public const string BundleFilesFolderName = "BundleFiles"; /// - /// 下载的临时文件的文件夹名称 + /// 临时文件的文件夹名称 /// - public const string TempFilesFolderName = "CacheTempFiles"; + public const string TempFilesFolderName = "TempFiles"; /// - /// 保存的清单文件的文件夹名称 + /// 清单文件的文件夹名称 /// public const string ManifestFilesFolderName = "ManifestFiles"; diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheWrapper.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/RecordFileElement.cs similarity index 74% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheWrapper.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/RecordFileElement.cs index 76608132..d44cbd41 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheWrapper.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/RecordFileElement.cs @@ -1,14 +1,14 @@  namespace YooAsset { - internal class CacheWrapper + internal class RecordFileElement { public string InfoFilePath { private set; get; } public string DataFilePath { private set; get; } public string DataFileCRC { private set; get; } public long DataFileSize { private set; get; } - public CacheWrapper(string infoFilePath, string dataFilePath, string dataFileCRC, long dataFileSize) + public RecordFileElement(string infoFilePath, string dataFilePath, string dataFileCRC, long dataFileSize) { InfoFilePath = infoFilePath; DataFilePath = dataFilePath; diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheWrapper.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/RecordFileElement.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheWrapper.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/RecordFileElement.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/TempFileElement.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/TempFileElement.cs similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/TempFileElement.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/TempFileElement.cs diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/TempFileElement.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/TempFileElement.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/TempFileElement.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/TempFileElement.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheFileElement.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/VerifyFileElement.cs similarity index 85% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheFileElement.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/VerifyFileElement.cs index 13940047..f5d0c1c8 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheFileElement.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/VerifyFileElement.cs @@ -2,7 +2,7 @@ namespace YooAsset { - internal class CacheFileElement + internal class VerifyFileElement { public string PackageName { private set; get; } public string BundleGUID { private set; get; } @@ -18,7 +18,7 @@ namespace YooAsset /// public volatile int Result = 0; - public CacheFileElement(string packageName, string bundleGUID, string fileRootPath, string dataFilePath, string infoFilePath) + public VerifyFileElement(string packageName, string bundleGUID, string fileRootPath, string dataFilePath, string infoFilePath) { PackageName = packageName; BundleGUID = bundleGUID; diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheFileElement.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/VerifyFileElement.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/CacheFileElement.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Elements/VerifyFileElement.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSInitializeOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSInitializeOperation.cs index bd6dab31..ba0ba810 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSInitializeOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSInitializeOperation.cs @@ -57,7 +57,7 @@ namespace YooAsset { if (_searchCacheFilesOp == null) { - _searchCacheFilesOp = new SearchCacheFilesOperation(_fileSystem, _fileSystem.PackageName, _fileSystem.AppendFileExtension); + _searchCacheFilesOp = new SearchCacheFilesOperation(_fileSystem); OperationSystem.StartOperation(_fileSystem.PackageName, _searchCacheFilesOp); } @@ -72,7 +72,7 @@ namespace YooAsset { if (_verifyCacheFilesOp == null) { - _verifyCacheFilesOp = new VerifyCacheFilesOperation(_fileSystem, _fileSystem.FileVerifyLevel, _searchCacheFilesOp.Result); + _verifyCacheFilesOp = new VerifyCacheFilesOperation(_fileSystem, _searchCacheFilesOp.Result); OperationSystem.StartOperation(_fileSystem.PackageName, _verifyCacheFilesOp); } diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs index feea33ab..34791c67 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs @@ -104,7 +104,7 @@ namespace YooAsset } else { - string filePath = _fileSystem.GetCacheFileLoadPath(_bundle); + string filePath = _fileSystem.GetCacheBundleFileLoadPath(_bundle); _assetBundle = AssetBundle.LoadFromFile(filePath); } } @@ -118,7 +118,7 @@ namespace YooAsset } else { - string filePath = _fileSystem.GetCacheFileLoadPath(_bundle); + string filePath = _fileSystem.GetCacheBundleFileLoadPath(_bundle); _createRequest = AssetBundle.LoadFromFileAsync(filePath); } } @@ -168,7 +168,7 @@ namespace YooAsset // 注意:在安卓移动平台,华为和三星真机上有极小概率加载资源包失败。 // 说明:大多数情况在首次安装下载资源到沙盒内,游戏过程中切换到后台再回到游戏内有很大概率触发! - string filePath = _fileSystem.GetCacheFileLoadPath(_bundle); + string filePath = _fileSystem.GetCacheBundleFileLoadPath(_bundle); byte[] fileData = FileUtility.ReadAllBytes(filePath); if (fileData != null && fileData.Length > 0) { @@ -198,7 +198,7 @@ namespace YooAsset else { _steps = ESteps.Done; - _fileSystem.DeleteCacheFile(_bundle.BundleGUID); + _fileSystem.DeleteCacheBundleFile(_bundle.BundleGUID); Status = EOperationStatus.Failed; Error = $"Find corrupted asset bundle file and delete : {_bundle.BundleName}"; YooLogger.Error(Error); @@ -304,7 +304,7 @@ namespace YooAsset if (_steps == ESteps.LoadCacheRawBundle) { - string filePath = _fileSystem.GetCacheFileLoadPath(_bundle); + string filePath = _fileSystem.GetCacheBundleFileLoadPath(_bundle); if (File.Exists(filePath)) { _steps = ESteps.Done; diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearAllCacheFilesOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheBundleFilesOperation.cs similarity index 80% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearAllCacheFilesOperation.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheBundleFilesOperation.cs index 67eb1d6a..7433f43d 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearAllCacheFilesOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheBundleFilesOperation.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; namespace YooAsset { - internal sealed class ClearAllCacheFilesOperation : FSClearCacheBundleFilesOperation + internal sealed class ClearAllCacheBundleFilesOperation : FSClearCacheFilesOperation { private enum ESteps { @@ -13,15 +13,15 @@ namespace YooAsset Done, } - private readonly ICacheSystem _cacheSystem; + private readonly DefaultCacheFileSystem _fileSystem; private List _allBundleGUIDs; private int _fileTotalCount = 0; private ESteps _steps = ESteps.None; - internal ClearAllCacheFilesOperation(ICacheSystem cacheSystem) + internal ClearAllCacheBundleFilesOperation(DefaultCacheFileSystem fileSystem) { - _cacheSystem = cacheSystem; + _fileSystem = fileSystem; } internal override void InternalOnStart() { @@ -34,7 +34,7 @@ namespace YooAsset if (_steps == ESteps.GetAllCacheFiles) { - _allBundleGUIDs = _cacheSystem.GetAllCachedBundleGUIDs(); + _allBundleGUIDs = _fileSystem.GetAllCachedBundleGUIDs(); _fileTotalCount = _allBundleGUIDs.Count; _steps = ESteps.ClearAllCacheFiles; YooLogger.Log($"Found all cache files count : {_fileTotalCount}"); @@ -45,7 +45,7 @@ namespace YooAsset for (int i = _allBundleGUIDs.Count - 1; i >= 0; i--) { string bundleGUID = _allBundleGUIDs[i]; - _cacheSystem.DeleteCacheFile(bundleGUID); + _fileSystem.DeleteCacheBundleFile(bundleGUID); _allBundleGUIDs.RemoveAt(i); if (OperationSystem.IsBusy) break; diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearAllCacheFilesOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheBundleFilesOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearAllCacheFilesOperation.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheBundleFilesOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheManifestFilesOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheManifestFilesOperation.cs new file mode 100644 index 00000000..62a737fe --- /dev/null +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheManifestFilesOperation.cs @@ -0,0 +1,63 @@ +using System; +using System.IO; + +namespace YooAsset +{ + internal sealed class ClearAllCacheManifestFilesOperation : FSClearCacheFilesOperation + { + private enum ESteps + { + None, + ClearAllCacheFiles, + Done, + } + + private readonly DefaultCacheFileSystem _fileSystem; + private ESteps _steps = ESteps.None; + + + internal ClearAllCacheManifestFilesOperation(DefaultCacheFileSystem fileSystem) + { + _fileSystem = fileSystem; + } + internal override void InternalOnStart() + { + _steps = ESteps.ClearAllCacheFiles; + } + internal override void InternalOnUpdate() + { + if (_steps == ESteps.None || _steps == ESteps.Done) + return; + + if (_steps == ESteps.ClearAllCacheFiles) + { + try + { + // 注意:如果正在下载资源清单,会有几率触发异常! + string directoryRoot = _fileSystem.GetCacheManifestFilesRoot(); + DirectoryInfo directoryInfo = new DirectoryInfo(directoryRoot); + if (directoryInfo.Exists) + { + foreach (FileInfo fileInfo in directoryInfo.GetFiles()) + { + string fileName = fileInfo.Name; + if (fileName == DefaultCacheFileSystemDefine.AppFootPrintFileName) + continue; + + fileInfo.Delete(); + } + } + + _steps = ESteps.Done; + Status = EOperationStatus.Succeed; + } + catch (Exception ex) + { + _steps = ESteps.Done; + Error = ex.Message; + Status = EOperationStatus.Failed; + } + } + } + } +} \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface/ICacheSystem.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheManifestFilesOperation.cs.meta similarity index 83% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface/ICacheSystem.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheManifestFilesOperation.cs.meta index e9a6cf30..c72b2cc7 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Interface/ICacheSystem.cs.meta +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearAllCacheManifestFilesOperation.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f878bc9a12f5d2d40aee754ddfaada86 +guid: 5643382e7031ba14cbb4ab0f4a9acd94 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearCacheFilesByTagsOperaiton.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearCacheBundleFilesByTagsOperaiton.cs similarity index 88% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearCacheFilesByTagsOperaiton.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearCacheBundleFilesByTagsOperaiton.cs index 66a6ad5c..a34045fb 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearCacheFilesByTagsOperaiton.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearCacheBundleFilesByTagsOperaiton.cs @@ -2,7 +2,7 @@ namespace YooAsset { - internal class ClearCacheFilesByTagsOperaiton : FSClearCacheBundleFilesOperation + internal class ClearCacheBundleFilesByTagsOperaiton : FSClearCacheFilesOperation { private enum ESteps { @@ -13,7 +13,7 @@ namespace YooAsset Done, } - private readonly ICacheSystem _cacheSystem; + private readonly DefaultCacheFileSystem _fileSystem; private readonly PackageManifest _manifest; private readonly object _clearParam; private string[] _tags; @@ -21,9 +21,9 @@ namespace YooAsset private int _clearFileTotalCount = 0; private ESteps _steps = ESteps.None; - internal ClearCacheFilesByTagsOperaiton(ICacheSystem cacheSystem, PackageManifest manifest, object clearParam) + internal ClearCacheBundleFilesByTagsOperaiton(DefaultCacheFileSystem fileSystem, PackageManifest manifest, object clearParam) { - _cacheSystem = cacheSystem; + _fileSystem = fileSystem; _manifest = manifest; _clearParam = clearParam; } @@ -82,7 +82,7 @@ namespace YooAsset for (int i = _clearBundleGUIDs.Count - 1; i >= 0; i--) { string bundleGUID = _clearBundleGUIDs[i]; - _cacheSystem.DeleteCacheFile(bundleGUID); + _fileSystem.DeleteCacheBundleFile(bundleGUID); _clearBundleGUIDs.RemoveAt(i); if (OperationSystem.IsBusy) break; @@ -102,7 +102,7 @@ namespace YooAsset } private List GetTagsBundleGUIDs() { - var allBundleGUIDs = _cacheSystem.GetAllCachedBundleGUIDs(); + var allBundleGUIDs = _fileSystem.GetAllCachedBundleGUIDs(); List result = new List(allBundleGUIDs.Count); foreach (var bundleGUID in allBundleGUIDs) { diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearCacheFilesByTagsOperaiton.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearCacheBundleFilesByTagsOperaiton.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearCacheFilesByTagsOperaiton.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearCacheBundleFilesByTagsOperaiton.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearUnusedCacheFilesOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheBundleFilesOperation.cs similarity index 83% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearUnusedCacheFilesOperation.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheBundleFilesOperation.cs index e4743c70..962ba9fe 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearUnusedCacheFilesOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheBundleFilesOperation.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; namespace YooAsset { - internal sealed class ClearUnusedCacheFilesOperation : FSClearCacheBundleFilesOperation + internal sealed class ClearUnusedCacheBundleFilesOperation : FSClearCacheFilesOperation { private enum ESteps { @@ -13,16 +13,16 @@ namespace YooAsset Done, } - private readonly ICacheSystem _cacheSystem; + private readonly DefaultCacheFileSystem _fileSystem; private readonly PackageManifest _manifest; private List _unusedBundleGUIDs; private int _unusedFileTotalCount = 0; private ESteps _steps = ESteps.None; - internal ClearUnusedCacheFilesOperation(ICacheSystem cacheSystem, PackageManifest manifest) + internal ClearUnusedCacheBundleFilesOperation(DefaultCacheFileSystem fileSystem, PackageManifest manifest) { - _cacheSystem = cacheSystem; + _fileSystem = fileSystem; _manifest = manifest; } internal override void InternalOnStart() @@ -47,7 +47,7 @@ namespace YooAsset for (int i = _unusedBundleGUIDs.Count - 1; i >= 0; i--) { string bundleGUID = _unusedBundleGUIDs[i]; - _cacheSystem.DeleteCacheFile(bundleGUID); + _fileSystem.DeleteCacheBundleFile(bundleGUID); _unusedBundleGUIDs.RemoveAt(i); if (OperationSystem.IsBusy) break; @@ -68,7 +68,7 @@ namespace YooAsset private List GetUnusedBundleGUIDs() { - var allBundleGUIDs = _cacheSystem.GetAllCachedBundleGUIDs(); + var allBundleGUIDs = _fileSystem.GetAllCachedBundleGUIDs(); List result = new List(allBundleGUIDs.Count); foreach (var bundleGUID in allBundleGUIDs) { diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearUnusedCacheFilesOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheBundleFilesOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/ClearUnusedCacheFilesOperation.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheBundleFilesOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheManifestFilesOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheManifestFilesOperation.cs new file mode 100644 index 00000000..c71cfad7 --- /dev/null +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheManifestFilesOperation.cs @@ -0,0 +1,70 @@ +using System; +using System.IO; + +namespace YooAsset +{ + internal sealed class ClearUnusedCacheManifestFilesOperation : FSClearCacheFilesOperation + { + private enum ESteps + { + None, + ClearUnusedCacheFiles, + Done, + } + + private readonly DefaultCacheFileSystem _fileSystem; + private readonly PackageManifest _manifest; + private ESteps _steps = ESteps.None; + + + internal ClearUnusedCacheManifestFilesOperation(DefaultCacheFileSystem fileSystem, PackageManifest manifest) + { + _fileSystem = fileSystem; + _manifest = manifest; + } + internal override void InternalOnStart() + { + _steps = ESteps.ClearUnusedCacheFiles; + } + internal override void InternalOnUpdate() + { + if (_steps == ESteps.None || _steps == ESteps.Done) + return; + + if (_steps == ESteps.ClearUnusedCacheFiles) + { + try + { + string activeManifestFileName = YooAssetSettingsData.GetManifestBinaryFileName(_manifest.PackageName, _manifest.PackageVersion); + string activeHashFileName = YooAssetSettingsData.GetPackageHashFileName(_manifest.PackageName, _manifest.PackageVersion); + + // 注意:如果正在下载资源清单,会有几率触发异常! + string directoryRoot = _fileSystem.GetCacheManifestFilesRoot(); + DirectoryInfo directoryInfo = new DirectoryInfo(directoryRoot); + if (directoryInfo.Exists) + { + foreach (FileInfo fileInfo in directoryInfo.GetFiles()) + { + string fileName = fileInfo.Name; + if (fileName == DefaultCacheFileSystemDefine.AppFootPrintFileName) + continue; + if (fileName == activeManifestFileName || fileName == activeHashFileName) + continue; + + fileInfo.Delete(); + } + } + + _steps = ESteps.Done; + Status = EOperationStatus.Succeed; + } + catch (Exception ex) + { + _steps = ESteps.Done; + Error = ex.Message; + Status = EOperationStatus.Failed; + } + } + } + } +} \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheManifestFilesOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheManifestFilesOperation.cs.meta new file mode 100644 index 00000000..58b93bd9 --- /dev/null +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/ClearUnusedCacheManifestFilesOperation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d911513cf97d862448df570f0c8e9b38 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadHandlerFileRange.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadHandlerFileRange.cs similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadHandlerFileRange.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadHandlerFileRange.cs diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadHandlerFileRange.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadHandlerFileRange.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadHandlerFileRange.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadHandlerFileRange.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadNormalFileOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs similarity index 93% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadNormalFileOperation.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs index 571883c5..0d7b4528 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadNormalFileOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs @@ -6,22 +6,20 @@ namespace YooAsset { internal sealed class DownloadNormalFileOperation : DefaultDownloadFileOperation { - private readonly IFileSystem _fileSystem; - private readonly ICacheSystem _cacheSystem; + private readonly DefaultCacheFileSystem _fileSystem; private VerifyTempFileOperation _verifyOperation; private bool _isReuqestLocalFile; private string _tempFilePath; private ESteps _steps = ESteps.None; - internal DownloadNormalFileOperation(IFileSystem fileSystem, ICacheSystem cacheSystem, PackageBundle bundle, DownloadParam param) : base(bundle, param) + internal DownloadNormalFileOperation(DefaultCacheFileSystem fileSystem, PackageBundle bundle, DownloadParam param) : base(bundle, param) { _fileSystem = fileSystem; - _cacheSystem = cacheSystem; } internal override void InternalOnStart() { _isReuqestLocalFile = DownloadSystemHelper.IsRequestLocalFile(Param.MainURL); - _tempFilePath = _cacheSystem.GetTempFilePath(Bundle); + _tempFilePath = _fileSystem.GetTempFilePath(Bundle); _steps = ESteps.CheckExists; } internal override void InternalOnUpdate() @@ -106,7 +104,7 @@ namespace YooAsset if (_verifyOperation.Status == EOperationStatus.Succeed) { - if (_cacheSystem.WriteCacheFile(Bundle, _tempFilePath)) + if (_fileSystem.WriteCacheBundleFile(Bundle, _tempFilePath)) { _steps = ESteps.Done; Status = EOperationStatus.Succeed; diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadNormalFileOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadNormalFileOperation.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadResumeFileOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs similarity index 92% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadResumeFileOperation.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs index 402fae26..028b7e87 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadResumeFileOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs @@ -7,9 +7,7 @@ namespace YooAsset { internal sealed class DownloadResumeFileOperation : DefaultDownloadFileOperation { - private readonly IFileSystem _fileSystem; - private readonly ICacheSystem _cacheSystem; - private readonly List _responseCodes; + private readonly DefaultCacheFileSystem _fileSystem; private DownloadHandlerFileRange _downloadHandle; private VerifyTempFileOperation _verifyOperation; private bool _isReuqestLocalFile; @@ -18,16 +16,14 @@ namespace YooAsset private ESteps _steps = ESteps.None; - internal DownloadResumeFileOperation(IFileSystem fileSystem, ICacheSystem cacheSystem, PackageBundle bundle, DownloadParam param, List responseCodes) : base(bundle, param) + internal DownloadResumeFileOperation(DefaultCacheFileSystem fileSystem, PackageBundle bundle, DownloadParam param) : base(bundle, param) { _fileSystem = fileSystem; - _cacheSystem = cacheSystem; - _responseCodes = responseCodes; } internal override void InternalOnStart() { _isReuqestLocalFile = DownloadSystemHelper.IsRequestLocalFile(Param.MainURL); - _tempFilePath = _cacheSystem.GetTempFilePath(Bundle); + _tempFilePath = _fileSystem.GetTempFilePath(Bundle); _steps = ESteps.CheckExists; } internal override void InternalOnUpdate() @@ -129,7 +125,7 @@ namespace YooAsset if (_verifyOperation.Status == EOperationStatus.Succeed) { - if (_cacheSystem.WriteCacheFile(Bundle, _tempFilePath)) + if (_fileSystem.WriteCacheBundleFile(Bundle, _tempFilePath)) { Status = EOperationStatus.Succeed; _steps = ESteps.Done; @@ -247,11 +243,11 @@ namespace YooAsset } private void ClearTempFileWhenError() { - if (_responseCodes == null) + if (_fileSystem.ResumeDownloadResponseCodes == null) return; //说明:如果遇到以下错误返回码,验证失败直接删除文件 - if (_responseCodes.Contains(HttpCode)) + if (_fileSystem.ResumeDownloadResponseCodes.Contains(HttpCode)) { if (File.Exists(_tempFilePath)) File.Delete(_tempFilePath); diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadResumeFileOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/DownloadResumeFileOperation.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/SearchCacheFilesOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/SearchCacheFilesOperation.cs similarity index 80% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/SearchCacheFilesOperation.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/SearchCacheFilesOperation.cs index 6e32ea2b..bae413f8 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/SearchCacheFilesOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/SearchCacheFilesOperation.cs @@ -15,9 +15,7 @@ namespace YooAsset Done, } - private readonly ICacheSystem _cacheSystem; - private readonly string _packageName; - private readonly bool _appendFileExtension; + private readonly DefaultCacheFileSystem _fileSystem; private IEnumerator _filesEnumerator = null; private float _verifyStartTime; private ESteps _steps = ESteps.None; @@ -25,14 +23,12 @@ namespace YooAsset /// /// 需要验证的元素 /// - public readonly List Result = new List(5000); + public readonly List Result = new List(5000); - internal SearchCacheFilesOperation(ICacheSystem cacheSystem, string packageName, bool appendFileExtension) + internal SearchCacheFilesOperation(DefaultCacheFileSystem fileSystem) { - _cacheSystem = cacheSystem; - _packageName = packageName; - _appendFileExtension = appendFileExtension; + _fileSystem = fileSystem; } internal override void InternalOnStart() { @@ -46,7 +42,7 @@ namespace YooAsset if (_steps == ESteps.Prepare) { - DirectoryInfo rootDirectory = new DirectoryInfo(_cacheSystem.GetCacheFileRoot()); + DirectoryInfo rootDirectory = new DirectoryInfo(_fileSystem.GetCacheBundleFilesRoot()); if (rootDirectory.Exists) { var directorieInfos = rootDirectory.EnumerateDirectories(); @@ -84,23 +80,23 @@ namespace YooAsset foreach (var chidDirectory in childDirectories) { string bundleGUID = chidDirectory.Name; - if (_cacheSystem.IsRecordFile(bundleGUID)) + if (_fileSystem.IsRecordBundleFile(bundleGUID)) continue; // 创建验证元素类 string fileRootPath = chidDirectory.FullName; - string dataFilePath = $"{fileRootPath}/{ DefaultCacheFileSystemDefine.SaveBundleDataFileName}"; - string infoFilePath = $"{fileRootPath}/{ DefaultCacheFileSystemDefine.SaveBundleInfoFileName}"; + string dataFilePath = $"{fileRootPath}/{ DefaultCacheFileSystemDefine.BundleDataFileName}"; + string infoFilePath = $"{fileRootPath}/{ DefaultCacheFileSystemDefine.BundleInfoFileName}"; // 存储的数据文件追加文件格式 - if (_appendFileExtension) + if (_fileSystem.AppendFileExtension) { string dataFileExtension = FindDataFileExtension(chidDirectory); if (string.IsNullOrEmpty(dataFileExtension) == false) dataFilePath += dataFileExtension; } - var element = new CacheFileElement(_packageName, bundleGUID, fileRootPath, dataFilePath, infoFilePath); + var element = new VerifyFileElement(_fileSystem.PackageName, bundleGUID, fileRootPath, dataFilePath, infoFilePath); Result.Add(element); } @@ -116,7 +112,7 @@ namespace YooAsset var fileInfos = directoryInfo.GetFiles(); foreach (var fileInfo in fileInfos) { - if (fileInfo.Name.StartsWith(DefaultCacheFileSystemDefine.SaveBundleDataFileName)) + if (fileInfo.Name.StartsWith(DefaultCacheFileSystemDefine.BundleDataFileName)) { dataFileExtension = fileInfo.Extension; break; diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/SearchCacheFilesOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/SearchCacheFilesOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/SearchCacheFilesOperation.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/SearchCacheFilesOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyCacheFilesOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyCacheFilesOperation.cs similarity index 82% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyCacheFilesOperation.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyCacheFilesOperation.cs index 8a21710c..aefad955 100644 --- a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyCacheFilesOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyCacheFilesOperation.cs @@ -19,10 +19,10 @@ namespace YooAsset Done, } - private readonly ICacheSystem _cacheSystem; - private readonly EFileVerifyLevel _verifyLevel; - private List _waitingList; - private List _verifyingList; + private readonly DefaultCacheFileSystem _fileSystem; + private readonly EFileVerifyLevel _fileVerifyLevel; + private List _waitingList; + private List _verifyingList; private int _verifyMaxNum; private int _verifyTotalCount; private float _verifyStartTime; @@ -31,11 +31,11 @@ namespace YooAsset private ESteps _steps = ESteps.None; - internal VerifyCacheFilesOperation(ICacheSystem cacheSystem, EFileVerifyLevel verifyLevel, List elements) + internal VerifyCacheFilesOperation(DefaultCacheFileSystem fileSystem, List elements) { - _cacheSystem = cacheSystem; - _verifyLevel = verifyLevel; + _fileSystem = fileSystem; _waitingList = elements; + _fileVerifyLevel = fileSystem.FileVerifyLevel; } internal override void InternalOnStart() { @@ -59,7 +59,7 @@ namespace YooAsset if (_verifyMaxNum < 1) _verifyMaxNum = 1; - _verifyingList = new List(_verifyMaxNum); + _verifyingList = new List(_verifyMaxNum); _steps = ESteps.UpdateVerify; } @@ -118,22 +118,21 @@ namespace YooAsset } private void VerifyInThread(object obj) { - CacheFileElement element = (CacheFileElement)obj; - int verifyResult = (int)VerifyingCacheFile(element, _verifyLevel); + VerifyFileElement element = (VerifyFileElement)obj; + int verifyResult = (int)VerifyingCacheFile(element, _fileVerifyLevel); element.Result = verifyResult; } - private void RecordVerifyFile(CacheFileElement element) + private void RecordVerifyFile(VerifyFileElement element) { if (element.Result == (int)EFileVerifyResult.Succeed) { _succeedCount++; - var fileWrapper = new CacheWrapper(element.InfoFilePath, element.DataFilePath, element.DataFileCRC, element.DataFileSize); - _cacheSystem.RecordFile(element.BundleGUID, fileWrapper); + var recordFileElement = new RecordFileElement(element.InfoFilePath, element.DataFilePath, element.DataFileCRC, element.DataFileSize); + _fileSystem.RecordBundleFile(element.BundleGUID, recordFileElement); } else { _failedCount++; - YooLogger.Warning($"Failed to verify file {element.Result} and delete files : {element.FileRootPath}"); element.DeleteFiles(); } @@ -142,7 +141,7 @@ namespace YooAsset /// /// 验证缓存文件(子线程内操作) /// - private EFileVerifyResult VerifyingCacheFile(CacheFileElement element, EFileVerifyLevel verifyLevel) + private EFileVerifyResult VerifyingCacheFile(VerifyFileElement element, EFileVerifyLevel verifyLevel) { try { @@ -160,7 +159,7 @@ namespace YooAsset return EFileVerifyResult.InfoFileNotExisted; // 解析信息文件获取验证数据 - _cacheSystem.ReadInfoFile(element.InfoFilePath, out element.DataFileCRC, out element.DataFileSize); + _fileSystem.ReadBundleInfoFile(element.InfoFilePath, out element.DataFileCRC, out element.DataFileSize); } } catch (Exception) diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyCacheFilesOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyCacheFilesOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyCacheFilesOperation.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyCacheFilesOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyTempFileOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyTempFileOperation.cs similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyTempFileOperation.cs rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyTempFileOperation.cs diff --git a/Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyTempFileOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyTempFileOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/CacheSystem/Operation/VerifyTempFileOperation.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/VerifyTempFileOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs index 0b99f1f2..6ea9ab5e 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs @@ -69,9 +69,9 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - public virtual FSClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) { - var operation = new FSClearCacheBundleFilesCompleteOperation(null); + var operation = new FSClearCacheFilesCompleteOperation(); OperationSystem.StartOperation(PackageName, operation); return operation; } diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultUnpackFileSystem/DefaultUnpackFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultUnpackFileSystem/DefaultUnpackFileSystem.cs index 8349d53a..c45b5f26 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultUnpackFileSystem/DefaultUnpackFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultUnpackFileSystem/DefaultUnpackFileSystem.cs @@ -14,8 +14,8 @@ namespace YooAsset base.OnCreate(packageName, rootDirectory); // 注意:重写保存根目录和临时目录 - _cacheFileRoot = PathUtility.Combine(_packageRoot, DefaultUnpackFileSystemDefine.SaveFilesFolderName); - _tempFileRoot = PathUtility.Combine(_packageRoot, DefaultUnpackFileSystemDefine.TempFilesFolderName); + _cacheBundleFilesRoot = PathUtility.Combine(_packageRoot, DefaultUnpackFileSystemDefine.SaveFilesFolderName); + _tempFilesRoot = PathUtility.Combine(_packageRoot, DefaultUnpackFileSystemDefine.TempFilesFolderName); } } } \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs index 5b4bb498..d653bb48 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs @@ -71,9 +71,9 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - public virtual FSClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) { - var operation = new FSClearCacheBundleFilesCompleteOperation(null); + var operation = new FSClearCacheFilesCompleteOperation(); OperationSystem.StartOperation(PackageName, operation); return operation; } diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs index 0da887ab..fc666e5f 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs @@ -80,9 +80,9 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - public virtual FSClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(PackageManifest manifest, string clearMode, object clearParam) + public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam) { - var operation = new FSClearCacheBundleFilesCompleteOperation(null); + var operation = new FSClearCacheFilesCompleteOperation(); OperationSystem.StartOperation(PackageName, operation); return operation; } diff --git a/Assets/YooAsset/Runtime/FileSystem/EFileClearMode.cs b/Assets/YooAsset/Runtime/FileSystem/EFileClearMode.cs index f4a132e5..20564f74 100644 --- a/Assets/YooAsset/Runtime/FileSystem/EFileClearMode.cs +++ b/Assets/YooAsset/Runtime/FileSystem/EFileClearMode.cs @@ -9,17 +9,28 @@ namespace YooAsset /// /// 清理所有文件 /// - ClearAllBundleFiles = 1, + ClearAllBundleFiles, /// /// 清理未在使用的文件 /// - ClearUnusedBundleFiles = 2, + ClearUnusedBundleFiles, /// /// 清理指定标签的文件 /// 说明:需要指定参数,可选:string, string[], List /// - ClearBundleFilesByTags = 3, + ClearBundleFilesByTags, + + + /// + /// 清理所有清单 + /// + ClearAllManifestFiles, + + /// + /// 清理未在使用的清单 + /// + ClearUnusedManifestFiles, } } \ No newline at end of file diff --git a/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs index 9e7566ad..fa5ec1cd 100644 --- a/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs +++ b/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs @@ -37,7 +37,7 @@ namespace YooAsset /// /// 清理缓存文件 /// - FSClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(PackageManifest manifest, string clearMode, object clearParam); + FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam); /// /// 下载远端文件 @@ -48,13 +48,13 @@ namespace YooAsset /// 加载Bundle文件 /// FSLoadBundleOperation LoadBundleFile(PackageBundle bundle); - + /// /// 设置自定义参数 /// void SetParameter(string name, object value); - + /// /// 创建缓存系统 /// diff --git a/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheBundleFilesOperation.cs b/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs similarity index 61% rename from Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheBundleFilesOperation.cs rename to Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs index e32538a4..948d64b6 100644 --- a/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheBundleFilesOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs @@ -1,15 +1,19 @@  namespace YooAsset { - internal abstract class FSClearCacheBundleFilesOperation : AsyncOperationBase + internal abstract class FSClearCacheFilesOperation : AsyncOperationBase { } - internal sealed class FSClearCacheBundleFilesCompleteOperation : FSClearCacheBundleFilesOperation + internal sealed class FSClearCacheFilesCompleteOperation : FSClearCacheFilesOperation { private readonly string _error; - internal FSClearCacheBundleFilesCompleteOperation(string error) + internal FSClearCacheFilesCompleteOperation() + { + _error = null; + } + internal FSClearCacheFilesCompleteOperation(string error) { _error = error; } diff --git a/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheBundleFilesOperation.cs.meta b/Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheBundleFilesOperation.cs.meta rename to Assets/YooAsset/Runtime/FileSystem/Operation/FSClearCacheFilesOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs b/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs index 3339d526..3ea25ab5 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs @@ -31,7 +31,7 @@ namespace YooAsset /// /// 清理缓存文件 /// - ClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(string clearMode, object clearParam); + ClearCacheFilesOperation ClearCacheFilesAsync(string clearMode, object clearParam); // 下载相关 ResourceDownloaderOperation CreateResourceDownloaderByAll(int downloadingMaxNumber, int failedTryAgain, int timeout); diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheBundleFilesOperation.cs b/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs similarity index 57% rename from Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheBundleFilesOperation.cs rename to Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs index d17035bf..85dd3cea 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheBundleFilesOperation.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs @@ -1,10 +1,10 @@  namespace YooAsset { - public abstract class ClearCacheBundleFilesOperation : AsyncOperationBase + public abstract class ClearCacheFilesOperation : AsyncOperationBase { } - internal sealed class ClearCacheBundleFilesImplOperation : ClearCacheBundleFilesOperation + internal sealed class ClearCacheFilesImplOperation : ClearCacheFilesOperation { private enum ESteps { @@ -21,12 +21,12 @@ namespace YooAsset private readonly IFileSystem _fileSystemC; private readonly string _clearMode; private readonly object _clearParam; - private FSClearCacheBundleFilesOperation _clearCacheBundleFilesOpA; - private FSClearCacheBundleFilesOperation _clearCacheBundleFilesOpB; - private FSClearCacheBundleFilesOperation _clearCacheBundleFilesOpC; + private FSClearCacheFilesOperation _clearCacheFilesOpA; + private FSClearCacheFilesOperation _clearCacheFilesOpB; + private FSClearCacheFilesOperation _clearCacheFilesOpC; private ESteps _steps = ESteps.None; - internal ClearCacheBundleFilesImplOperation(IPlayMode impl, IFileSystem fileSystemA, IFileSystem fileSystemB, IFileSystem fileSystemC, string clearMode, object clearParam) + internal ClearCacheFilesImplOperation(IPlayMode impl, IFileSystem fileSystemA, IFileSystem fileSystemB, IFileSystem fileSystemC, string clearMode, object clearParam) { _impl = impl; _fileSystemA = fileSystemA; @@ -52,14 +52,14 @@ namespace YooAsset return; } - if (_clearCacheBundleFilesOpA == null) - _clearCacheBundleFilesOpA = _fileSystemA.ClearCacheBundleFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam); + if (_clearCacheFilesOpA == null) + _clearCacheFilesOpA = _fileSystemA.ClearCacheFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam); - Progress = _clearCacheBundleFilesOpA.Progress; - if (_clearCacheBundleFilesOpA.IsDone == false) + Progress = _clearCacheFilesOpA.Progress; + if (_clearCacheFilesOpA.IsDone == false) return; - if (_clearCacheBundleFilesOpA.Status == EOperationStatus.Succeed) + if (_clearCacheFilesOpA.Status == EOperationStatus.Succeed) { _steps = ESteps.ClearFileSystemB; } @@ -67,7 +67,7 @@ namespace YooAsset { _steps = ESteps.Done; Status = EOperationStatus.Failed; - Error = _clearCacheBundleFilesOpA.Error; + Error = _clearCacheFilesOpA.Error; } } @@ -79,14 +79,14 @@ namespace YooAsset return; } - if (_clearCacheBundleFilesOpB == null) - _clearCacheBundleFilesOpB = _fileSystemB.ClearCacheBundleFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam); + if (_clearCacheFilesOpB == null) + _clearCacheFilesOpB = _fileSystemB.ClearCacheFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam); - Progress = _clearCacheBundleFilesOpB.Progress; - if (_clearCacheBundleFilesOpB.IsDone == false) + Progress = _clearCacheFilesOpB.Progress; + if (_clearCacheFilesOpB.IsDone == false) return; - if (_clearCacheBundleFilesOpB.Status == EOperationStatus.Succeed) + if (_clearCacheFilesOpB.Status == EOperationStatus.Succeed) { _steps = ESteps.ClearFileSystemC; } @@ -94,7 +94,7 @@ namespace YooAsset { _steps = ESteps.Done; Status = EOperationStatus.Failed; - Error = _clearCacheBundleFilesOpB.Error; + Error = _clearCacheFilesOpB.Error; } } @@ -107,14 +107,14 @@ namespace YooAsset return; } - if (_clearCacheBundleFilesOpC == null) - _clearCacheBundleFilesOpC = _fileSystemC.ClearCacheBundleFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam); + if (_clearCacheFilesOpC == null) + _clearCacheFilesOpC = _fileSystemC.ClearCacheFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam); - Progress = _clearCacheBundleFilesOpC.Progress; - if (_clearCacheBundleFilesOpC.IsDone == false) + Progress = _clearCacheFilesOpC.Progress; + if (_clearCacheFilesOpC.IsDone == false) return; - if (_clearCacheBundleFilesOpC.Status == EOperationStatus.Succeed) + if (_clearCacheFilesOpC.Status == EOperationStatus.Succeed) { _steps = ESteps.Done; Status = EOperationStatus.Succeed; @@ -123,7 +123,7 @@ namespace YooAsset { _steps = ESteps.Done; Status = EOperationStatus.Failed; - Error = _clearCacheBundleFilesOpC.Error; + Error = _clearCacheFilesOpC.Error; } } } diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheBundleFilesOperation.cs.meta b/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs.meta similarity index 100% rename from Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheBundleFilesOperation.cs.meta rename to Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs.meta diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeImpl.cs index be08ca09..50e12845 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeImpl.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeImpl.cs @@ -52,9 +52,9 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - ClearCacheBundleFilesOperation IPlayMode.ClearCacheBundleFilesAsync(string clearMode, object clearParam) + ClearCacheFilesOperation IPlayMode.ClearCacheFilesAsync(string clearMode, object clearParam) { - var operation = new ClearCacheBundleFilesImplOperation(this, EditorFileSystem, null, null, clearMode, clearParam); + var operation = new ClearCacheFilesImplOperation(this, EditorFileSystem, null, null, clearMode, clearParam); OperationSystem.StartOperation(PackageName, operation); return operation; } diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/HostPlayModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/HostPlayModeImpl.cs index 24d4af23..759ab004 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/HostPlayModeImpl.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/HostPlayModeImpl.cs @@ -56,9 +56,9 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - ClearCacheBundleFilesOperation IPlayMode.ClearCacheBundleFilesAsync(string clearMode, object clearParam) + ClearCacheFilesOperation IPlayMode.ClearCacheFilesAsync(string clearMode, object clearParam) { - var operation = new ClearCacheBundleFilesImplOperation(this, BuildinFileSystem, CacheFileSystem, null, clearMode, clearParam); + var operation = new ClearCacheFilesImplOperation(this, BuildinFileSystem, CacheFileSystem, null, clearMode, clearParam); OperationSystem.StartOperation(PackageName, operation); return operation; } diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/OfflinePlayModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/OfflinePlayModeImpl.cs index b4ff238e..8e34a34b 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/OfflinePlayModeImpl.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/OfflinePlayModeImpl.cs @@ -52,9 +52,9 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - ClearCacheBundleFilesOperation IPlayMode.ClearCacheBundleFilesAsync(string clearMode, object clearParam) + ClearCacheFilesOperation IPlayMode.ClearCacheFilesAsync(string clearMode, object clearParam) { - var operation = new ClearCacheBundleFilesImplOperation(this, BuildinFileSystem, null, null, clearMode, clearParam); + var operation = new ClearCacheFilesImplOperation(this, BuildinFileSystem, null, null, clearMode, clearParam); OperationSystem.StartOperation(PackageName, operation); return operation; } diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs index 72e7a415..f280b145 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs @@ -74,9 +74,9 @@ namespace YooAsset OperationSystem.StartOperation(PackageName, operation); return operation; } - ClearCacheBundleFilesOperation IPlayMode.ClearCacheBundleFilesAsync(string clearMode, object clearParam) + ClearCacheFilesOperation IPlayMode.ClearCacheFilesAsync(string clearMode, object clearParam) { - var operation = new ClearCacheBundleFilesImplOperation(this, WebServerFileSystem, WebRemoteFileSystem, null, clearMode, clearParam); + var operation = new ClearCacheFilesImplOperation(this, WebServerFileSystem, WebRemoteFileSystem, null, clearMode, clearParam); OperationSystem.StartOperation(PackageName, operation); return operation; } diff --git a/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs b/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs index e5e6fb6a..8fb909fd 100644 --- a/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs +++ b/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs @@ -220,7 +220,7 @@ namespace YooAsset } /// - /// 加载指定版本的资源清单 + /// 更新并加载指定版本的资源清单 /// /// 包裹版本 /// 超时时间(默认值:60秒) @@ -253,23 +253,24 @@ namespace YooAsset /// /// 清理方式 /// 执行参数 - public ClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(EFileClearMode clearMode, object clearParam = null) + public ClearCacheFilesOperation ClearCacheFilesAsync(EFileClearMode clearMode, object clearParam = null) { DebugCheckInitialize(); - return _playModeImpl.ClearCacheBundleFilesAsync(clearMode.ToString(), clearParam); + return _playModeImpl.ClearCacheFilesAsync(clearMode.ToString(), clearParam); } - + /// /// 清理缓存文件 /// /// 清理方式 /// 执行参数 - public ClearCacheBundleFilesOperation ClearCacheBundleFilesAsync(string clearMode, object clearParam = null) + public ClearCacheFilesOperation ClearCacheFilesAsync(string clearMode, object clearParam = null) { DebugCheckInitialize(); - return _playModeImpl.ClearCacheBundleFilesAsync(clearMode, clearParam); + return _playModeImpl.ClearCacheFilesAsync(clearMode, clearParam); } + #region 包裹信息 /// /// 获取当前加载包裹的版本信息