Beispiel #1
0
        static void Main(string[] args)
        {
            NFsCgi Cgi = new NFsCgi(args);

            NFsHtml html = new NFsHtml("./NFsCGI_Test.html");

            html.ReplaceTag("$Mode", Cgi.ModeStr);
            html.ReplaceTag("$PATH_INFO", Cgi.PATH_INFO);
            html.ReplaceTag("$QUERY_STRING", Cgi.QUERY_STRING);
            html.ReplaceTag("$Data", Cgi.Data.ToJson());


            html.output();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            // NFsCgiでpost/getの処理を行う
            NFsCgi cgi = new NFsCgi(args);

            /// lock処理
            if (cgi.CheckLockFile("FindFolder") == false)
            {
                cgi.WriteErr("<b>lock err<b>");
                return;
            }
            // CGIパラメータを獲得

            // 検索するフォルダ名
            string TargetName = "";

            cgi.Data.FindValueFromTag("TargetName", out TargetName);
            // 動作モード find listup etc
            string Mode = "";

            cgi.Data.FindValueFromTag("Mode", out Mode);
            // 対象ディレクトリのインデックス文字列
            string TargetIndexStr = "";

            cgi.Data.FindValueFromTag("TargetIndex", out TargetIndexStr);
            // 対象ディレクトリのインデックス
            int TargetIndexValue = 0;

            if (int.TryParse(TargetIndexStr, out TargetIndexValue) == false)
            {
                TargetIndexValue = 0;
            }
            // FormのSelect 項目
            string SelectItemStr = "";

            // 対象ディレクトリの知ると
            string[] TargetDirs = new string[0];

            //prefファイルを読み込む
            //prefファイルにはターゲットリストがあるフォルダパスが入っている
            string prmD = LoadPref(".pref");

            if (prmD == "")
            {
                cgi.WriteErr("<b>.pref err<b>");
                cgi.CloseLockFile();
                return;
            }
            else
            {
                //ターゲットリストを読み込む
                TargetDirs = LoadTargetDir(Path.Combine(prmD, "TargetDir.json"));
                if (TargetDirs.Length <= 0)
                {
                    cgi.WriteErr("<b>TargetDir.json err<b>");
                    cgi.CloseLockFile();
                    return;
                }
                else
                {
                    // ターゲットリストからSelect項目のhtmlを作成。
                    for (int i = 0; i < TargetDirs.Length; i++)
                    {
                        string b  = "<option {0} value=\"{1}\">{2}</option>\r\n";
                        string ss = "";
                        if (TargetIndexValue == i)
                        {
                            ss = "selected";
                        }
                        SelectItemStr += String.Format(b, ss, i, Path.GetFileName(TargetDirs[i]));
                    }
                }
            }
            if (TargetIndexValue < 0)
            {
                TargetIndexValue = 0;
            }
            else if (TargetIndexValue > TargetDirs.Length - 1)
            {
                TargetIndexValue = TargetDirs.Length - 1;
            }


            // htmlの処理
            string  htmlPath = Path.Combine(prmD, "base.html");
            NFsHtml html     = new NFsHtml(htmlPath);

            //基本htmlがなかったら作成
            if (html.Html == "")
            {
                html.Html = Properties.Resources.baseHtml;
                html.Save(htmlPath);
            }
            // htmlの形成
            html.ReplaceTag("$TargetName", TargetName);
            html.ReplaceTag("$PATH_INFO", cgi.PATH_INFO);
            html.ReplaceTag("$QUERY_STRING", cgi.QUERY_STRING);
#if DEBUG
            html.ReplaceTag("$Data", cgi.Data.ToJson());
#endif
            html.ReplaceTag("$SelectItems", SelectItemStr);

            // フォルダ検索
            FindFolder ff = new FindFolder();

            string TargetPath = TargetDirs[TargetIndexValue];


            ff.SetTargetDir(TargetPath);

            //対象ディレクトリがなかったらエラー TargetDir
            if (ff.TargetDir == "")
            {
                html.output();
                cgi.CloseLockFile();
                return;
            }
            // Modeがlistuoならデータベースを再構築
            if (Mode == "listup")
            {
                ff.ListupFolders(ff.TargetDir);
            }

            if (Mode == "find")
            {
                // フォルダ検索の実際の処理
                string[] sa = ff.Find(TargetName);                //FolderPath

                string dlist = "";

                // 結果をhtmlへ
                if (sa.Length > 0)
                {
                    foreach (string ss in sa)
                    {
                        dlist += "<li>" + ss + "</li>\r\n";
                    }
                }
                else
                {
                    dlist += "<li>None</li>\r\n";
                }
                dlist = "<ul class=\"big\">\r\n" + dlist + "</ul>\r\n";

                html.ReplaceTag("$FolderPath", dlist);
            }
            else
            {
                html.ReplaceTag("$FolderPath", "");
            }
            //出力
            html.output();

            // lock解除
            cgi.CloseLockFile();
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            // NFsCgiでpost/getの処理を行う
            NFsCgi cgi = new NFsCgi(args);

            /// lock処理
            if (cgi.CheckLockFile("fastcopy") == false)
            {
                cgi.WriteErr("<b>lock err<b>");
                return;
            }
            string pramD = LoadPref(".pref");

            if ((pramD == "") || (pramD == "dir exists"))
            {
                cgi.WriteErr("<b>pref err<b>");
                cgi.CloseLockFile();
                return;
            }



            // CGIパラメータを獲得
            // 動作モード find listup etc
            string Mode = "";

            cgi.Data.FindValueFromTag("Mode", out Mode);
            // 対象ディレクトリのインデックス文字列
            string TargetIndexStr = "";

            cgi.Data.FindValueFromTag("TargetIndex", out TargetIndexStr);
            // 対象ディレクトリのインデックス
            int TargetIndexValue = 0;

            if (int.TryParse(TargetIndexStr, out TargetIndexValue) == false)
            {
                TargetIndexValue = 0;
            }
            // FormのSelect 項目
            string SelectItemStr = "";

            // 対象ディレクトリの知ると
            string[] TargetDirs = new string[0];

            //prefファイルを読み込む
            //prefファイルにはターゲットリストがあるフォルダパスが入っている
            FastCopyOptList optlist = LoadFastCopy(Path.Combine(pramD, "fastcopy.json"));

            if (optlist.Items.Count <= 0)
            {
                cgi.WriteErr("<b>fastcopy.json err<b>");
                cgi.CloseLockFile();
                return;
            }
            else
            {
                // ターゲットリストからSelect項目のhtmlを作成。
                for (int i = 0; i < optlist.Items.Count; i++)
                {
                    string b  = "<option {0} value=\"{1}\">{2}</option>\r\n";
                    string ss = "";
                    if (TargetIndexValue == i)
                    {
                        ss = "selected";
                    }
                    SelectItemStr += String.Format(b, ss, i, optlist.Items[i].caption);
                }
            }
            if (TargetIndexValue < 0)
            {
                TargetIndexValue = 0;
            }
            else if (TargetIndexValue > optlist.Items.Count - 1)
            {
                TargetIndexValue = optlist.Items.Count - 1;
            }


            // htmlの処理
            string  htmlPath = Path.Combine(pramD, "base.html");
            NFsHtml html     = new NFsHtml(htmlPath);

            //基本htmlがなかったら作成
            if (html.Html == "")
            {
                html.Html = Properties.Resources.baseHtml;
                html.Save(htmlPath);
            }
            // htmlの形成
            html.ReplaceTag("$PATH_INFO", cgi.PATH_INFO);
            html.ReplaceTag("$QUERY_STRING", cgi.QUERY_STRING);
#if DEBUG
            html.ReplaceTag("$Data", cgi.Data.ToJson());
#endif
            html.ReplaceTag("$SelectItems", SelectItemStr);



            if (Mode == "exec")
            {
            }


            Process[] fxs         = FastCopy.ListupFastCopy();
            string    FastCopyNow = "";
            if (fxs.Length > 0)
            {
                for (int i = 0; i < fxs.Length; i++)
                {
                    string      t   = fxs[i].MainWindowTitle;
                    FastCopyOpt fco = new FastCopyOpt();
                    fco.FromJson(t);
                    string ss = "<li>FastCopy src:[{0}] dst:[{1}] start:{2}</li>\r\n";
                    FastCopyNow += String.Format(ss, fco.src, fco.dst, fxs[i].StartTime.ToString());
                }
                FastCopyNow = "<ul>\r\n" + FastCopyNow + "</ul>\r\n";
            }
            else
            {
                FastCopyNow = "起動なし";
            }
            html.ReplaceTag("$FastCopyNow", FastCopyNow);
            //出力
            html.output();

            // lock解除
            cgi.CloseLockFile();
        }