Esempio n. 1
0
        private void findToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DirectoryListFilterDialog filter_dialog = new DirectoryListFilterDialog(true);

            if (filter_dialog.ShowDialog() == DialogResult.OK)
            {
                DirectorySearchResultDialog result_dialog = new DirectorySearchResultDialog();
                result_dialog.Show();
                result_dialog.BeginSearch(filter_dialog.DirectoryListFilter);
            }
        }
Esempio n. 2
0
        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;
                    }
                }
            }
        }
Esempio n. 3
0
        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[] { });
            }
        }