Пример #1
0
        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);
        }
Пример #2
0
        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);
        }