Ejemplo n.º 1
0
        //────────────────────────────────────────

        protected void Execute6_Sub(
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute6_Sub", log_Reports);

            string sName_Fnc;

            this.TrySelectAttribute(out sName_Fnc, PmNames.S_NAME.Name_Pm, EnumHitcount.One_Or_Zero, log_Reports);

            if (log_Reports.CanStopwatch)
            {
                log_Method.Log_Stopwatch.Message = "Nアクション[" + sName_Fnc + "]実行";
                log_Method.Log_Stopwatch.Begin();
            }


            //ScriptVariableフォルダー
            string pm_Folder_Source;

            this.TrySelectAttribute(out pm_Folder_Source, Expression_Node_Function47Impl.PM_FOLDER_SOURCE, EnumHitcount.One_Or_Zero, log_Reports);

            //書出し先ファイル
            Expression_Node_String fileExport_Expr;

            this.TrySelectAttribute(out fileExport_Expr, Expression_Node_Function47Impl.PM_FILE_EXPORT, EnumHitcount.One_Or_Zero, log_Reports);

            //書出し先フィールド
            Expression_Node_String fieldExport_Expr;

            this.TrySelectAttribute(out fieldExport_Expr, Expression_Node_Function47Impl.PM_FIELD_EXPORT, EnumHitcount.One, log_Reports);

            //フィルター指定
            string pm_Filter;

            this.TrySelectAttribute(out pm_Filter, Expression_Node_Function47Impl.PM_FILTER, EnumHitcount.One_Or_Zero, log_Reports);
            pm_Filter = pm_Filter.Trim();

            //サブフォルダー検索
            string pm_Is_Search_Subfolder;

            this.TrySelectAttribute(out pm_Is_Search_Subfolder, Expression_Node_Function47Impl.PM_IS_SEARCH_SUBFOLDER, EnumHitcount.One_Or_Zero, log_Reports);

            //ポップアップ指定
            string str_Popup;

            this.TrySelectAttribute(out str_Popup, Expression_Node_Function47Impl.PM_POPUP, EnumHitcount.One_Or_Zero, log_Reports);
            str_Popup = str_Popup.Trim();


            //ディレクトリー階層を走査したい。
            Filesystemreport filesystemreporter = new FilesystemreportImpl();

            if (log_Reports.Successful)
            {
                Filesystemrunner runner = new FilesystemrunnerImpl();
                //log_Method.WriteDebug_ToConsole("初回 pm_Folder_Source=[" + pm_Folder_Source + "] pm_Filter=[" + pm_Filter + "] pm_Is_Search_Subfolder=[" + pm_Is_Search_Subfolder + "]");
                runner.Run(
                    filesystemreporter,
                    pm_Folder_Source,
                    pm_Filter,
                    pm_Is_Search_Subfolder,
                    log_Reports
                    );
            }

            // 検索結果をCSVテーブルの形にして出力。
            if (log_Reports.Successful)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("NO,");
                sb.Append(fieldExport_Expr.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports));// "FILE"
                sb.Append(",END");

                sb.Append(Environment.NewLine);
                sb.Append("int,string,END");
                sb.Append(Environment.NewLine);
                sb.Append("-1,ファイルパス,END");
                sb.Append(Environment.NewLine);

                int field_No = 0;
                filesystemreporter.ForEach(delegate(string filesystementry, ref bool isBreak2, Log_Reports log_Reports2)
                {
                    //連番
                    sb.Append(field_No);
                    sb.Append(",");
                    sb.Append(filesystementry);
                    sb.Append(",END");
                    sb.Append(Environment.NewLine);
                    field_No++;
                }, log_Reports);
                sb.Append("EOF,,");
                sb.Append(Environment.NewLine);


                try
                {
                    string sFile_Export2 = fileExport_Expr.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
                    System.IO.File.WriteAllText(
                        sFile_Export2,
                        sb.ToString(),
                        Global.ENCODING_CSV
                        );

                    if (str_Popup != S_BLOCK)
                    {
                        Log_TextIndented s = new Log_TextIndentedImpl();

                        s.Append("ファイルに書き込みました。");
                        s.Newline();
                        s.Append("[");
                        s.Append(sFile_Export2);
                        s.Append("]");
                        s.Newline();
                        s.Newline();

                        s.Append("検索した場所:");
                        s.Newline();
                        s.Append("[");
                        s.Append(pm_Folder_Source);
                        s.Append("]");
                        s.Newline();
                        s.Newline();

                        s.Append("検索オプション(Pm:filter;):");
                        s.Newline();
                        s.Append("[");
                        s.Append(pm_Filter);
                        s.Append("]");
                        s.Newline();

                        MessageBox.Show(s.ToString(), "▲実行結果!(L02)");
                    }
                }
                catch (Exception ex)
                {
                    // 異常時は必ずポップアップが出る。
                    MessageBox.Show(
                        ex.Message,
                        "▲エラー201!(" + log_Method.Fullname + ")#Write"
                        );
                }
            }

            log_Method.EndMethod(log_Reports);
        }
        //────────────────────────────────────────
        protected void Execute6_Sub(
            Log_Reports log_Reports
            )
        {
            Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);
            log_Method.BeginMethod(Info_Functions.Name_Library, this, "Execute6_Sub", log_Reports);

            string sName_Fnc;
            this.TrySelectAttribute(out sName_Fnc, PmNames.S_NAME.Name_Pm, EnumHitcount.One_Or_Zero, log_Reports);

            if (log_Reports.CanStopwatch)
            {
                log_Method.Log_Stopwatch.Message = "Nアクション[" + sName_Fnc + "]実行";
                log_Method.Log_Stopwatch.Begin();
            }

            //ScriptVariableフォルダー
            string pm_Folder_Source;
            this.TrySelectAttribute(out pm_Folder_Source, Expression_Node_Function47Impl.PM_FOLDER_SOURCE, EnumHitcount.One_Or_Zero, log_Reports);

            //書出し先ファイル
            Expression_Node_String fileExport_Expr;
            this.TrySelectAttribute(out fileExport_Expr, Expression_Node_Function47Impl.PM_FILE_EXPORT, EnumHitcount.One_Or_Zero, log_Reports);

            //書出し先フィールド
            Expression_Node_String fieldExport_Expr;
            this.TrySelectAttribute(out fieldExport_Expr, Expression_Node_Function47Impl.PM_FIELD_EXPORT, EnumHitcount.One, log_Reports);

            //フィルター指定
            string pm_Filter;
            this.TrySelectAttribute(out pm_Filter, Expression_Node_Function47Impl.PM_FILTER, EnumHitcount.One_Or_Zero, log_Reports);
            pm_Filter = pm_Filter.Trim();

            //サブフォルダー検索
            string pm_Is_Search_Subfolder;
            this.TrySelectAttribute(out pm_Is_Search_Subfolder, Expression_Node_Function47Impl.PM_IS_SEARCH_SUBFOLDER, EnumHitcount.One_Or_Zero, log_Reports);

            //ポップアップ指定
            string str_Popup;
            this.TrySelectAttribute(out str_Popup, Expression_Node_Function47Impl.PM_POPUP, EnumHitcount.One_Or_Zero, log_Reports);
            str_Popup = str_Popup.Trim();

            //ディレクトリー階層を走査したい。
            Filesystemreport filesystemreporter = new FilesystemreportImpl();
            if(log_Reports.Successful)
            {
                Filesystemrunner runner = new FilesystemrunnerImpl();
                //log_Method.WriteDebug_ToConsole("初回 pm_Folder_Source=[" + pm_Folder_Source + "] pm_Filter=[" + pm_Filter + "] pm_Is_Search_Subfolder=[" + pm_Is_Search_Subfolder + "]");
                runner.Run(
                    filesystemreporter,
                    pm_Folder_Source,
                    pm_Filter,
                    pm_Is_Search_Subfolder,
                    log_Reports
                    );
            }

            // 検索結果をCSVテーブルの形にして出力。
            if (log_Reports.Successful)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("NO,");
                sb.Append(fieldExport_Expr.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports));// "FILE"
                sb.Append(",END");

                sb.Append(Environment.NewLine);
                sb.Append("int,string,END");
                sb.Append(Environment.NewLine);
                sb.Append("-1,ファイルパス,END");
                sb.Append(Environment.NewLine);

                int field_No = 0;
                filesystemreporter.ForEach(delegate(string filesystementry, ref bool isBreak2, Log_Reports log_Reports2)
                {
                    //連番
                    sb.Append(field_No);
                    sb.Append(",");
                    sb.Append(filesystementry);
                    sb.Append(",END");
                    sb.Append(Environment.NewLine);
                    field_No++;
                }, log_Reports);
                sb.Append("EOF,,");
                sb.Append(Environment.NewLine);

                try
                {
                    string sFile_Export2 = fileExport_Expr.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports);
                    System.IO.File.WriteAllText(
                        sFile_Export2,
                        sb.ToString(),
                        Global.ENCODING_CSV
                        );

                    if (str_Popup != S_BLOCK)
                    {
                        Log_TextIndented s = new Log_TextIndentedImpl();

                        s.Append("ファイルに書き込みました。");
                        s.Newline();
                        s.Append("[");
                        s.Append(sFile_Export2);
                        s.Append("]");
                        s.Newline();
                        s.Newline();

                        s.Append("検索した場所:");
                        s.Newline();
                        s.Append("[");
                        s.Append(pm_Folder_Source);
                        s.Append("]");
                        s.Newline();
                        s.Newline();

                        s.Append("検索オプション(Pm:filter;):");
                        s.Newline();
                        s.Append("[");
                        s.Append(pm_Filter);
                        s.Append("]");
                        s.Newline();

                        MessageBox.Show(s.ToString(), "▲実行結果!(L02)");
                    }
                }
                catch (Exception ex)
                {
                    // 異常時は必ずポップアップが出る。
                    MessageBox.Show(
                        ex.Message,
                        "▲エラー201!(" + log_Method.Fullname + ")#Write"
                        );
                }
            }

            log_Method.EndMethod(log_Reports);
        }