hch
2025-09-11 b9086106957030c9a5cabc02923d052e805c5a8b
Main/Core/GameEngine/Launch/AssetDeCompressTask.cs
@@ -35,77 +35,52 @@
        }
    }
    public static void Decompress(string path)
    {
        var files = new List<FileInfo>();
        FileExtersion.GetAllDirectoryFileInfos(path, files);
        foreach (var item in files)
        {
            var fullName = item.FullName;
            if (fullName.EndsWith(".7z"))
            {
                SevenZipUtility.DeCompress(fullName, Path.GetDirectoryName(fullName));
            }
        }
    }
    public static DecompressProgress DecompressAync(string path)
    {
        var progress = new DecompressProgress();
        var files = new List<FileInfo>();
        FileExtersion.GetAllDirectoryFileInfos(path, files);
        // var files = new List<FileInfo>();
        // FileExtersion.GetAllDirectoryFileInfos(path, files);
        for (var i = files.Count - 1; i >= 0; i--)
        {
            var fullName = files[i].FullName;
            if (!fullName.EndsWith(".7z"))
            {
                files.RemoveAt(i);
            }
        }
        // for (var i = files.Count - 1; i >= 0; i--)
        // {
        //     var fullName = files[i].FullName;
        //     if (!fullName.EndsWith(".7z"))
        //     {
        //         files.RemoveAt(i);
        //     }
        // }
        var total = files.Count;
        if (total == 0)
        {
            progress.progress = 1f;
            progress.done = true;
            return progress;
        }
        // var total = files.Count;
        // if (total == 0)
        // {
        //     progress.progress = 1f;
        //     progress.done = true;
        //     return progress;
        // }
        ThreadPool.QueueUserWorkItem((object a) =>
        {
            var index = 0;
            foreach (var item in files)
            {
                var fullName = item.FullName;
                if (fullName.EndsWith(".7z"))
                {
                    SevenZipUtility.DeCompress(fullName, Path.GetDirectoryName(fullName));
                    index++;
                    progress.progress = index / (float)total;
                }
            }
        // ThreadPool.QueueUserWorkItem((object a) =>
        // {
        //     var index = 0;
        //     foreach (var item in files)
        //     {
        //         var fullName = item.FullName;
        //         if (fullName.EndsWith(".7z"))
        //         {
        //             SevenZipUtility.DeCompress(fullName, Path.GetDirectoryName(fullName));
        //             index++;
        //             progress.progress = index / (float)total;
        //         }
        //     }
            progress.done = true;
        });
        //     progress.done = true;
        // });
        progress.done = true;
        return progress;
    }
    public static void Delete7zFiles(string path)
    {
        var files = new List<FileInfo>();
        FileExtersion.GetAllDirectoryFileInfos(path, files);
        for (var i = files.Count - 1; i >= 0; i--)
        {
            var fullName = files[i].FullName;
            if (fullName.EndsWith(".7z"))
            {
                files[i].Delete();
            }
        }
    }
    public class DecompressProgress
    {
@@ -179,7 +154,6 @@
    public override void End()
    {
        AssetDeCompressTask.assetDeCompressVersion = VersionConfig.Get().version;
        AssetDeCompressTask.Delete7zFiles(ResourcesPath.Instance.ExternalStorePath);
    }
    public override void Update()