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(); }
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(); }
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(); }