public void BeginSearch(DirectoryListFilter filter) { if (!engine.Active) { engine.BeginSearch(filter); } }
public void BeginSearch(DirectoryListFilter filter) { Abort = false; Active = true; this.filter = filter; file_size_max = (ulong)filter.SizeMaximum; file_size_min = (ulong)filter.SizeMinimum; //Thread.Sleep(100); work_thread.Start(); }
private void find_files(mFilePanel target_panel) { if (target_panel == null) { target_panel = doublePanel1.PanelActive; } DirectoryListFilterDialog filter_dialog = null; var filter = new DirectoryListFilter(); filter.Load(); if (doublePanel1.PanelActive.Source is DirectoryList) { filter.InCurrentDirectory = true; filter.InCurrentDirectoryWithSubdirs = true; filter.CurrentDirectory = ((DirectoryList)doublePanel1.PanelActive.Source).DirectoryPath; filter.CurrentDrive = Path.GetPathRoot(filter.CurrentDirectory); } filter_dialog = new DirectoryListFilterDialog(true, filter); filter_dialog.Text = Options.GetLiteral(Options.LANG_FIND); if (filter_dialog.ShowDialog() == DialogResult.OK) { var result_dialog = new DirectorySearchResultDialog(filter_dialog.DirectoryListFilter); //result_dialog.BeginSearch(filter_dialog.DirectoryListFilter); if (result_dialog.ShowDialog() == DialogResult.OK) { //go to... var sel_file_name = result_dialog.SelectedResult; if (string.IsNullOrEmpty(sel_file_name)) { return; } var sel_dir = Path.GetDirectoryName(sel_file_name); var sel_file = Path.GetFileName(sel_file_name); var dl = new DirectoryList(target_panel.Source.SortCriteria, target_panel.Source.SortReverse, sel_dir); target_panel.Source = dl; dl.Refill(); var foc_index = dl.FindIndexOfName(sel_file); if (foc_index != -1) { doublePanel1.PanelActive.FocusedIndex = foc_index; } } } }
public DirectoryListFilterDialog(bool enable_location_dialog, DirectoryListFilter filter) { InitializeComponent(); groupBox4.Enabled = enable_location_dialog; if (filter != null) { DirectoryListFilter = filter; } else { fill_defaults(); } set_lang(); }
public DirectorySearchResultDialog(DirectoryListFilter filter) : this() { BeginSearch(filter); }
public void BeginSearch(DirectoryListFilter filter) { engine.BeginSearch(filter); }
public override int[] FindItems() { //show filter and find within current collection DirectoryListFilterDialog filter_dialog = new DirectoryListFilterDialog(); if (filter_dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { DirectoryListFilter filter = filter_dialog.DirectoryListFilter; List <int> retList = new List <int>(); WIN32_FIND_DATA current_data = new WIN32_FIND_DATA(); bool pass = true; for (int i = 0; i < ItemCount; i++) { current_data = internal_list.Keys[i]; pass = true; for (int j = 0; j < filter.Masks.Length; j++) { if (!Wildcard.Match(filter.Masks[j], current_data.cFileName, false)) { pass = false; break; } } if (!pass) { continue; } if ((!filter.IgnoreFileAttributes) && ((current_data.dwFileAttributes & filter.FileAttributes) == 0)) { pass = false; continue; } if (!filter.IgnoreSize) { switch (filter.FilterSizeCriteria) { case FilterSizeCriteria.Between: if ((current_data.FileSize < (ulong)filter.SizeMinimum) || (current_data.FileSize > (ulong)filter.SizeMaximum)) { pass = false; continue; } break; case FilterSizeCriteria.Equal: if (current_data.FileSize != (ulong)filter.SizeMinimum) { pass = false; continue; } break; case FilterSizeCriteria.Greater: if (current_data.FileSize <= (ulong)filter.SizeMinimum) { pass = false; continue; } break; case FilterSizeCriteria.GreaterOrEqual: if (current_data.FileSize < (ulong)filter.SizeMinimum) { pass = false; continue; } break; case FilterSizeCriteria.Less: if (current_data.FileSize >= (ulong)filter.SizeMinimum) { pass = false; continue; } break; case FilterSizeCriteria.LessOrEqual: if (current_data.FileSize > (ulong)filter.SizeMinimum) { pass = false; continue; } break; } } if (!filter.IgnoreTimeAccess) { if ((current_data.ftLastAccessTime < filter.AccessBegin.ToFileTime()) || (current_data.ftLastAccessTime > filter.AccessEnd.ToFileTime())) { pass = false; continue; } } if (!filter.IgnoreTimeCreate) { if ((current_data.ftCreationTime < filter.CreateBegin.ToFileTime()) || (current_data.ftCreationTime > filter.CreateEnd.ToFileTime())) { pass = false; continue; } } if (!filter.IgnoreTimeModification) { if ((current_data.ftLastWriteTime < filter.ModificationBegin.ToFileTime()) || (current_data.ftLastWriteTime > filter.ModificationEnd.ToFileTime())) { pass = false; continue; } } //pass=true if (pass) { retList.Add(i); } } return(retList.ToArray()); } else { return(new int[] { }); } }