private Task decompress() { string mist = File.ReadAllText(file_mist.FileName); int progress = 0; settings.DATA_CONTENT content = JsonConvert.DeserializeObject <settings.DATA_CONTENT>(mist); var keys = content.DATA.Keys.ToArray(); var values = content.DATA.Values.ToArray(); int total = keys.Length; for (int i = 0; i < keys.Length; i++) { progress = (i * 100) / keys.Length; progress_bar(progress).Wait(); generate_directory(keys[i]).Wait(); if (File.Exists(keys[i]) == false) { UILogs($"Extracting file :: {keys[i]}").Wait(); File.WriteAllBytes(clean_path(keys[i]), values[i]); UILogs($"File extracted :: {keys[i]}").Wait(); } else { UILogs($"File already present :: {keys[i]}").Wait(); } } progress_bar(0).Wait(); UILogs("Files extracted").Wait(); return(Task.CompletedTask); }
private Task compress(string output) { string[] files = Directory.GetFiles(directory.SelectedPath, "*.*", SearchOption.AllDirectories); Console.WriteLine(files.Length); string name = null; int progress = 0; int total = count_char(directory.SelectedPath, '\\'); Dictionary <string, byte[]> content = new Dictionary <string, byte[]>(); for (int i = 0; i < files.Length; i++) { progress = (i * 100) / files.Length; name = get_full_path(files[i], total); UILogs($"{name}").Wait(); progress_bar(progress).Wait(); content.Add($"{name}", File.ReadAllBytes(files[i])); } settings.DATA_CONTENT new_content = new settings.DATA_CONTENT() { DATA = content }; UILogs("Compressing").Wait(); string json = JsonConvert.SerializeObject(new_content); UILogs($"Writing in {output}").Wait(); File.WriteAllText(output, json); progress_bar(0).Wait(); new_content.DATA = null; return(Task.CompletedTask); }