} // Файл -> массив байт по блокам public static void ByteFile(string name, byte[] file) { //распаковка LZMA (7-zip) var temp = SevenZipAdapter.Decompress(file); File.WriteAllBytes(name, temp); } // Массив -> файл
} // преобразует битовую строку в список байт 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); } // Файл -> массив байт по блокам