public void ShowIgnoreEditFormFromSetting(string dirPath) { // 無視設定フォームを開く OwnerForm.InvokeOnUIThread((form) => { // 無視設定ダイアログを開く var dialog = new IgnoreEditForm(IgnoreEditForm.EditMode.UPDATE, dirPath, "", App); var res = dialog.ShowDialog(form); if (res == DialogResult.OK) { // 無視設定を更新した場合、常駐クロール実行中であれば再起動 App.RestartAlwaysCrawlIfRunning(OwnerForm); } }); }
public void ShowIgnoreEditFormFromSearchResult(string path) { // 無視設定フォームを開く OwnerForm.InvokeOnUIThread((form) => { // 登録された対象フォルダのリストを取得し、パスが長い順に並べておく var folders = App.UserSettings.TargetFolders.OrderByDescending(folder => folder.Path.Length); // クリックしたファイルについて、どの対象フォルダに存在するかを特定(最もパスが長い=階層が深いものを優先) var dirPath = Path.GetDirectoryName(path); var baseDirPath = folders.First(folder => dirPath.ToLower().StartsWith(folder.Path.ToLower())).Path; // 無視設定ダイアログを開く var relPath = path.Substring(baseDirPath.Length + 1); var defaultPattern = (relPath.Contains(@"\") ? relPath : $@"\{relPath}"); var dialog = new IgnoreEditForm(IgnoreEditForm.EditMode.APPEND, baseDirPath, defaultPattern, App); var res = dialog.ShowDialog(form); if (res == DialogResult.OK) { // 無視設定を更新した場合、常駐クロール実行中であれば再起動 App.RestartAlwaysCrawlIfRunning(OwnerForm); } }); }