Beispiel #1
0
        } // Файл -> массив байт по блокам

        public static void ByteFile(string name, byte[] file)
        {
            //распаковка LZMA (7-zip)
            var temp = SevenZipAdapter.Decompress(file);

            File.WriteAllBytes(name, temp);
        } // Массив -> файл
Beispiel #2
0
        }  // преобразует битовую строку в список байт

        public static byte[][] CutFile(string path, int oneBlock)
        {
            //  byte[] temp = File.ReadAllBytes(path);
            //Сжатие LZMA(7-zip)
            var temp          = SevenZipAdapter.Compress(File.ReadAllBytes(path));
            int lengthPadding = 0;
            int countBlock    = (temp.Count() / oneBlock) + 1;
            int rem           = temp.Count() % oneBlock;

            if ((rem + 1) != oneBlock)
            {
                lengthPadding = oneBlock - (rem + 1);
            }
            byte[][] mess = new byte[countBlock][];

            for (int i = 0; i < countBlock - 1; i++)
            {
                mess[i] = new byte[oneBlock + 1];
                for (int j = 0; j < oneBlock; j++)
                {
                    mess[i][j] = temp[i * oneBlock + j];
                }
                mess[i][oneBlock] = (byte)0;
            }
            mess[countBlock - 1] = new byte[oneBlock + 1];
            for (int j = 0; j < rem; j++)
            {
                mess[countBlock - 1][j] = temp[(countBlock - 1) * oneBlock + j];
            }
            for (int i = rem; i < oneBlock; i++)
            {
                mess[countBlock - 1][i] = (byte)lengthPadding;
            }
            mess[countBlock - 1][oneBlock] = (byte)0;
            return(mess);
        } // Файл -> массив байт по блокам