private void button_folder_Click(object sender, RoutedEventArgs e) { string path = textBox_recFolder.Text.Trim(); string base_src = ""; string base_nw = ""; if (CommonManager.Instance.NWMode == true && path != "" && path.StartsWith("\\\\") == false) { //可能ならUNCパスをサーバ側のパスに戻す。 //複数の共有フォルダ使ってる場合はとりあえず諦める。(サーバ側で要逆変換) string path_src = path.TrimEnd('\\'); string path_nw = CommonManager.Instance.GetRecPath(path_src).TrimEnd('\\'); if (path_nw != "" && path_nw != path_src) { IEnumerable <string> r_src = path_src.Split('\\').Reverse(); IEnumerable <string> r = path_nw.Split('\\').Reverse(); int length_match = -1; foreach (var item in r.Zip(r_src, (p, ps) => new { nw = p, src = ps })) { if (item.nw != item.src) { break; } length_match += item.nw.Length + 1; } length_match = Math.Max(0, length_match); base_src = path_src.Substring(0, path_src.Length - length_match).TrimEnd('\\'); base_nw = path_nw.Substring(0, path_nw.Length - length_match).TrimEnd('\\'); } if (base_nw != "") { path = path_nw; } } path = CommonManager.GetFolderNameByDialog(path, "録画フォルダの選択"); if (path != null) { //他のドライブに変ったりしたときは何もしない if (base_nw != "" && path.StartsWith(base_nw) == true) { path = path.Replace(base_nw, base_src); if (path.EndsWith(":") == true) { path += "\\"; //EpgTimerSrvに削除されてしまうが‥ } } textBox_recFolder.Text = path; } }
private void button_chk_open_Click(object sender, RoutedEventArgs e) { CommonManager.GetFolderNameByDialog(textBox_chk_folder, "自動削除対象フォルダの選択"); }
public static RoutedEventHandler OpenFolderNameDialog(TextBox box, string Description = "", bool checkNWPath = false, string defaultPath = "") { return((sender, e) => CommonManager.GetFolderNameByDialog(box, Description, checkNWPath, defaultPath)); }