| | |
| | | } |
| | | } |
| | | |
| | | 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; |
| | | // 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; |
| | | // } |
| | | // } |
| | | |
| | | // progress.done = true; |
| | | // }); |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | 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 |
| | | { |
| | |
| | | public override void End() |
| | | { |
| | | AssetDeCompressTask.assetDeCompressVersion = VersionConfig.Get().version; |
| | | AssetDeCompressTask.Delete7zFiles(ResourcesPath.Instance.ExternalStorePath); |
| | | } |
| | | |
| | | public override void Update() |