private void find0(object param)
        {
            param1 p = (param1)param;

            string name = p.sr;
            List <DirectoryInfo> roots  = p.root;
            list_sours1          in_rez = p.res;

            List <DirectoryInfo> di = new List <DirectoryInfo>();
            List <FileInfo>      fi = new List <FileInfo>();

            foreach (DirectoryInfo d in roots)
            {
                find(name, d, di, fi);
            }

            foreach (DirectoryInfo d in di)
            {
                in_rez.l_all.Add(new item(d, "dir", true));
            }

            foreach (FileInfo f in fi)
            {
                in_rez.l_all.Add(new item(f, "file", true));
            }
        }
Пример #2
0
        public panel(list_sours1 l_s1 = null)
        {
            DriveInfo[] temp = DriveInfo.GetDrives();


            if (l_s1 != null)
            {
                list_all_s1 = l_s1;
            }
            else
            {
                list_all_s1 = new list_sours1();
            }

            alldrives = new List <DriveInfo>();

            for (int i = 0; i < temp.Length; ++i)
            {
                try
                {
                    string st = temp[i].VolumeLabel;
                    alldrives.Add(temp[i]);
                }
                catch
                {
                    temp[i] = null;
                }
            }

            current_drive = 0;
            roots         = new List <DirectoryInfo>();
            current_dir   = new DirectoryInfo(alldrives[0].RootDirectory.Name);
            Directory.SetCurrentDirectory(current_dir.Name);

            sub_dir_list = current_dir.EnumerateDirectories();
            file_list    = current_dir.EnumerateFiles();


            foreach (DriveInfo dr in alldrives)
            {
                roots.Add(dr.RootDirectory);
            }

            list_all_s1.l_all.Add(new item());
            foreach (DirectoryInfo dir in sub_dir_list)
            {
                list_all_s1.l_all.Add(new item(dir));
            }

            foreach (FileInfo file in file_list)
            {
                list_all_s1.l_all.Add(new item(file, "file"));
            }
        }
        private void serch_b1_Click(object sender, RoutedEventArgs e)
        {
            serch_b1.IsEnabled = false;
            string  serch_st = " ";
            Window1 w1       = new Window1();

            if (w1.ShowDialog() == true)
            {
                serch_st = w1.name;
            }

            list_sours1 s_rez = new list_sours1();
            param1      p     = new param1(serch_st, inactiv_w.roots, s_rez);



            deleg_run d_run = find0;

            d_run.BeginInvoke(p, end_serch, s_rez);
            prog_bar2.Visibility = Visibility.Visible;
        }
        void end_serch(IAsyncResult as_res)
        {
            list_sours1 l_rez = (list_sours1)as_res.AsyncState;

            if (lr)
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    bs_r.DataSource = null;
                    bs_r.DataSource = l_rez;
                }));
            }
            else
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    bs_l.DataSource = null;
                    bs_l.DataSource = l_rez;
                }));
            }
            this.Dispatcher.Invoke(new Action(() => { serch_b1.IsEnabled = true; prog_bar2.Visibility = Visibility.Hidden; }));
        }
        public MainWindow()
        {
            InitializeComponent();
            this.components = new System.ComponentModel.Container();
            l_sourse        = new list_sours1(this.components);
            r_sourse        = new list_sours1(this.components);

            main_l = new panel(l_sourse);
            main_r = new panel(r_sourse);

            lr = true;

            activ_w   = main_l;
            inactiv_w = main_r;

            _res = new List <item>();
            rez  = new item();

            bs_l = new BindingSource();
            bs_r = new BindingSource();

            bs_l.DataSource = l_sourse;
            bs_r.DataSource = r_sourse;


            l_panel.ItemsSource = bs_l;

            r_panel.ItemsSource = bs_r;

            l_panel.Focus();

            dir.Text = activ_w.current_dir.FullName;

            prog_bar1.Visibility = Visibility.Hidden;
            prog_bar2.Visibility = Visibility.Hidden;
        }
 internal param1(string s, List <DirectoryInfo> r, list_sours1 ress)
 {
     this.sr = s;
     root    = r;
     res     = ress;
 }