/// <summary> /// Encodes a byte array /// </summary> /// <param name="data"></param> /// <param name="encodingMap"></param> /// <param name="rootName">Root filename</param> /// <returns></returns> public static CASRecord Encode(byte[] data, EMap encodingMap, string rootName = null) { using var bt = new BlockTableStreamWriter(encodingMap); bt.Write(data); var record = bt.Finalise(); record.FileName = rootName; return(record); }
/// <summary> /// Encodes a byte array and saves the result to disk /// </summary> /// <param name="data"></param> /// <param name="encodingMap"></param> /// <param name="directory"></param> /// <param name="rootName">Root filename</param> /// <returns></returns> public static CASRecord EncodeAndExport(byte[] data, EMap encodingMap, string directory, string rootName = null) { using var bt = new BlockTableStreamWriter(encodingMap); bt.Write(data); var record = bt.Finalise(); string saveLocation = Path.Combine(directory, record.EKey.ToString()); using (var fs = Helpers.Create(saveLocation)) { bt.WriteTo(fs); record.BLTEPath = saveLocation; record.FileName = rootName; } return(record); }