public CommandLineHelper(Options opt) { options = opt; }
static void Main(string[] args) { var options = new Options(); //read 必須項目が無かったり、問題があったらヘルプ出して終わり if (!CommandLine.Parser.Default.ParseArguments(args, options)) { return; } var helper = new CommandLineHelper(options); // 引数に問題があればヘルプ出して終わり if (helper.IsRequireHelp()) { return; } // Inputするディレクトリがなければエラー出して終わり if (!helper.IsSafeInputDir()) { Console.WriteLine("指定のDirectoryが存在しないためキャンセルされました。"); return; } var files = Directory.GetFiles(options.InputDirectory); // 全言語共通のID一覧 // Enを一番に読みたいので、他言語化ファイルの命名規則上.が一番少ないものを先頭にしている var resxFileList = files.ToList().Where((x) => { var ext = Path.GetExtension(x); return ext.Equals(@".resx"); }).OrderBy( x => x.Where(y => y == '.').Count() ).ToList(); // resxファイルが存在しなかった場合は存在しないと伝えて終わり bool resxFileFound = resxFileList.ToArray().Length > 0; if (!resxFileFound) { Console.WriteLine("指定のDirectoryにresxファイルが存在ないため終了します。"); return; } // resxファイルを読み込んでいって出力処理へ var loader = new ResxLoader(); var langs = loader.LoadResxFileLanguageAll(resxFileList); var allLanguageDictionary = loader.LoadResxFileAll(resxFileList); switch (options.OutputType) { case("csv") : OutputCsv(langs, allLanguageDictionary); break; case("excel") : OutputExcel(langs, allLanguageDictionary); break; } return; }