static void Main(string[] args) { if (args.Length > 0) { foreach (var arg in args) { if (File.Exists(arg)) { var f = new FileInfo(arg); var d = f.FullName.ReadBytes().DecompressToSarcData(); var b = d.endianness.ToString(); var h = d.HashOnly.ToString(); Directory.SetCurrentDirectory(f.Directory.FullName); Directory.CreateDirectory(Path.GetFileNameWithoutExtension(f.FullName)); Directory.SetCurrentDirectory(Path.GetFileNameWithoutExtension(f.FullName)); foreach (var i in d.Files) { File.WriteAllBytes(i.Key, i.Value); } using var s = new StreamWriter("endianess.txt"); s.Write(b); s.Close(); using var s2 = new StreamWriter("hash.txt"); s2.Write(h); s2.Close(); } if (Directory.Exists(arg)) { var Dict = new Dictionary <string, byte[]>(); var d = new DirectoryInfo(arg); Directory.SetCurrentDirectory(d.FullName); foreach (var f in d.GetFiles()) { if (f.Extension != ".txt") { Dict.Add(f.Name, f.FullName.ReadBytes()); } } using var r = new StreamReader("endianess.txt"); var l = r.ReadToEnd(); r.Close(); using var r1 = new StreamReader("hash.txt"); var h = r1.ReadToEnd(); r1.Close(); bool h1; if (h.Contains("True")) { h1 = true; } else { h1 = false; } SarcData SD; if (l.Contains(ByteOrder.BigEndian.ToString())) { SD = new SarcData { endianness = ByteOrder.BigEndian, Files = Dict, HashOnly = h1 }; } else { SD = new SarcData { endianness = ByteOrder.LittleEndian, Files = Dict, HashOnly = h1 }; } var src = SD.PackSarc().Compress(); Directory.SetCurrentDirectory(Directory.GetParent(d.FullName).FullName); File.WriteAllBytes(d.Name + ".szs", src); } } } }