private void pack() { var contend = new List <byte>(); Console.WriteLine("Creating Header..."); var header = ""; foreach (var s in fs) { Console.WriteLine("Processing file:" + s); var tmp = File.ReadAllBytes(s); foreach (var i in tmp) { contend.Add(i); } var info = MakeVailed(tmp.Length.ToString()) + Path.GetFileName(s); header += StringSizer.Size(info); } var head = Encoding.UTF8.GetBytes(StringSizer.Fullsize(StringSizer.Size(header).Replace("\n", ""), IntLength)); var final = new byte[contend.Count + head.Length]; Console.WriteLine("Creating binery..."); var t = 0; for (var i = t; i < head.Length; i++, t++) { final[t] = head[t]; } for (var i = 0; i < contend.Count; i++, t++) { final[t] = contend[i]; } //Console.WriteLine( Encoding.UTF8.GetString( final ) ); Console.WriteLine("Writing all to file"); File.WriteAllBytes(filename, final); Console.WriteLine("Cleaning..."); final = new byte[1]; contend = new List <byte>(); head = new byte[1]; header = ""; }
private void Unpack() { var contend = new List <byte>(File.ReadAllBytes(filename)); Console.WriteLine("reading header..."); var hlength = int.Parse(Encoding.UTF8.GetString(contend.GetRange(0, 20).ToArray()).Substring(0, IntLength)); var ascy = Encoding.UTF8.GetString(contend.GetRange(IntLength, hlength).ToArray()); int len; var head = StringSizer.UnSize(ascy, out len); ascy = ""; var fullheadlength = (len + 2 + head.Length.ToString().Length + 2) + IntLength; Console.WriteLine("Isolating contend..."); contend = contend.GetRange(fullheadlength, contend.Count - fullheadlength); var infos = head.Split('\n'); var c = 0; for (var i = 0; i < infos.Length - 1; i++) { var p = StringSizer.UnSize(infos[i], out var length); var filename = p.Substring(IntLength); var filesize = int.Parse(p.Substring(0, IntLength)); Console.WriteLine("Processing file:" + filename); File.WriteAllBytes(filename, contend.GetRange(c, filesize).ToArray()); c += filesize; } Console.WriteLine("Cleaning..."); contend = new List <byte>(); ascy = ""; }