优化SearchCacheFilesOperation

This commit is contained in:
Alan Liu
2025-10-13 17:44:37 +08:00
parent c865ddc7f2
commit 3579a23bd5

View File

@@ -16,7 +16,7 @@ namespace YooAsset
} }
private readonly DefaultCacheFileSystem _fileSystem; private readonly DefaultCacheFileSystem _fileSystem;
private IEnumerator<DirectoryInfo> _filesEnumerator = null; private IEnumerator<string> _filesEnumerator = null;
private float _verifyStartTime; private float _verifyStartTime;
private ESteps _steps = ESteps.None; private ESteps _steps = ESteps.None;
@@ -42,11 +42,11 @@ namespace YooAsset
if (_steps == ESteps.Prepare) if (_steps == ESteps.Prepare)
{ {
DirectoryInfo rootDirectory = new DirectoryInfo(_fileSystem.GetCacheBundleFilesRoot()); string rootDirectory = _fileSystem.GetCacheBundleFilesRoot();
if (rootDirectory.Exists) if (Directory.Exists(rootDirectory))
{ {
var directorieInfos = rootDirectory.EnumerateDirectories(); var directories = Directory.EnumerateDirectories(rootDirectory);
_filesEnumerator = directorieInfos.GetEnumerator(); _filesEnumerator = directories.GetEnumerator();
} }
_steps = ESteps.SearchFiles; _steps = ESteps.SearchFiles;
} }
@@ -76,15 +76,15 @@ namespace YooAsset
break; break;
var rootFoder = _filesEnumerator.Current; var rootFoder = _filesEnumerator.Current;
var childDirectories = rootFoder.GetDirectories(); var childDirectories = Directory.EnumerateDirectories(rootFoder);
foreach (var chidDirectory in childDirectories) foreach (var chidDirectory in childDirectories)
{ {
string bundleGUID = chidDirectory.Name; string bundleGUID = Path.GetFileName(chidDirectory);
if (_fileSystem.IsRecordBundleFile(bundleGUID)) if (_fileSystem.IsRecordBundleFile(bundleGUID))
continue; continue;
// 创建验证元素类 // 创建验证元素类
string fileRootPath = chidDirectory.FullName; string fileRootPath = chidDirectory;
string dataFilePath = $"{fileRootPath}/{DefaultCacheFileSystemDefine.BundleDataFileName}"; string dataFilePath = $"{fileRootPath}/{DefaultCacheFileSystemDefine.BundleDataFileName}";
string infoFilePath = $"{fileRootPath}/{DefaultCacheFileSystemDefine.BundleInfoFileName}"; string infoFilePath = $"{fileRootPath}/{DefaultCacheFileSystemDefine.BundleInfoFileName}";
@@ -108,18 +108,15 @@ namespace YooAsset
return isFindItem; return isFindItem;
} }
private string FindDataFileExtension(DirectoryInfo directoryInfo) private string FindDataFileExtension(string directory)
{ {
string dataFileExtension = string.Empty; string dataFileExtension = string.Empty;
var fileInfos = directoryInfo.GetFiles(); var files = Directory.EnumerateFiles(directory, DefaultCacheFileSystemDefine.BundleDataFileName + "*");
foreach (var fileInfo in fileInfos) foreach (var file in files)
{ {
if (fileInfo.Name.StartsWith(DefaultCacheFileSystemDefine.BundleDataFileName)) dataFileExtension = Path.GetExtension(file);
{
dataFileExtension = fileInfo.Extension;
break; break;
} }
}
return dataFileExtension; return dataFileExtension;
} }
} }