Example #1
0
        /// <summary>
        /// ExePath.configを読み込み、データを置換・結合し、コマンドライン引数を作成する
        /// </summary>
        /// <param name="strAppName">アプリケーション名</param>
        /// <param name="strInputFileName">入力ファイル名(拡張子を除いたファイルパスの配列)</param>
        /// <param name="strOutputFileName">出力ファイル名(パス、拡張子を除いたファイル名のみ)</param>
        /// <returns>各アプリケーションのコマンドライン引数</returns>
        private string MakeAppArgs(string strAppName, List <string> strInputFileName, string strOutputFileName)
        {
            IEnumerable <XElement> enumInputElements  = XDOCUMENT_CONFIG_EXEPATH.GetConfigXElement(strAppName, CONFIG_EXEPATH_NODE_INPUT, CONFIG_EXEPATH_NODE_FILE_ARG);
            IEnumerable <XElement> enumOutputElements = XDOCUMENT_CONFIG_EXEPATH.GetConfigXElement(strAppName, CONFIG_EXEPATH_NODE_OUTPUT, CONFIG_EXEPATH_NODE_FILE_ARG);
            IEnumerable <XElement> enumOptionElements = XDOCUMENT_CONFIG_EXEPATH.GetConfigXElement(strAppName, CONFIG_EXEPATH_NODE_OPTION);

            StringBuilder sbArguments = new StringBuilder();

            foreach (var xInputItem in enumInputElements.Select((value, count) => new { value, count }))
            {
                sbArguments.Append(
                    xInputItem.value.Value
                    .Replace("{Input}", strInputFileName[xInputItem.count])
                    .Replace("{Ext}", xInputItem.value.Attribute(CONFIG_EXEPATH_ATTRIBUTE_FILE_EXT).Value)
                    );
            }

            foreach (XElement xOutputItem in enumOutputElements)
            {
                sbArguments.Append(
                    xOutputItem.Value
                    .Replace("{Output}", strOutputFileName)
                    .Replace("{Ext}", xOutputItem.Attribute(CONFIG_EXEPATH_ATTRIBUTE_FILE_EXT).Value)
                    );
            }

            foreach (XElement xOptionItem in enumOptionElements)
            {
                sbArguments.Append(xOptionItem.Value);
            }

            return(sbArguments.ToString());
        }
Example #2
0
 public ExternalAppSettings(string strAppName, string strOutputFile, Action actAfter, params string[] strInputFile)
 {
     AppName        = strAppName;
     AppRoot        = XDOCUMENT_CONFIG_EXEPATH.ReadConfig(AppName, CONFIG_EXEPATH_NODE_PATH);
     InputFile      = new List <string>(strInputFile);
     OutputFile     = strOutputFile;
     Option         = XDOCUMENT_CONFIG_EXEPATH.ReadConfig(AppName, CONFIG_EXEPATH_NODE_OPTION);
     ArgumentString = MakeAppArgs(AppName, InputFile, OutputFile);
     TotalString    = AppRoot + ArgumentString;
     AfterAction    = actAfter;
 }