コード例 #1
0
ファイル: Program.cs プロジェクト: az1020/xenoblade2-research
        private static BdatTable[] GetBdatMembers(string bdatDir, string pattern)
        {
            string[] filenames = Directory.GetFiles(bdatDir, pattern, SearchOption.AllDirectories);
            byte[][] files     = new byte[filenames.Length][];
            var      tables    = new BdatTable[filenames.Length][];

            for (int i = 0; i < filenames.Length; i++)
            {
                files[i]  = File.ReadAllBytes(filenames[i]);
                tables[i] = new BdatFile(files[i], filenames[i]).Tables;
            }

            BdatTable[] flat = tables.SelectMany(x => x).ToArray();

            return(flat);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: ckurtz22/Xc2Archive
        static void Main(string[] args)
        {
            var options = new Options();

            Parser.Default.ParseArguments <Options>(args).WithParsed(opts => options = opts);

            var FS    = new SwitchFS(options.SwitchFs);
            var romfs = FS.GetRomfs(Convert.ToUInt64(options.Title, 16));
            var xc2fs = new ArchiveFileSystem(romfs);

            if (options.Output != null)
            {
                xc2fs.ExtractFiles(options.Output);
            }

            var common = xc2fs.Files.FirstOrDefault(x => x.FullPath.Contains("common.bdat"));
            var a      = new BdatFile(xc2fs.OpenFile(common), Path.GetFileName(common.FullPath));
        }