예제 #1
0
        private void OpenDirectory(object obj)
        {
            Load_indicator = 0;
            TextInFile     = "";
            PathSearchFiles.Clear();
            PathFiles.Clear();
            var files = DirectoryUsing.DirectoryOpen();

            try
            {
                if (files != null)
                {
                    foreach (string filename in files)
                    {
                        PathFiles.Add(new PathFile {
                            FileName = filename
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #2
0
        async void SearchWord(object obj)
        {
            CancellationToken token = cancelTokenSource.Token;

            PathSearchFiles.Clear();
            Load_indicator = 0;
            searchProcess  = true;
            await Task.Run(() =>
            {
                BreakButtonVisibality = "Visible";
                foreach (var path in PathFiles)
                {
                    if (token.IsCancellationRequested)
                    {
                        //MessageBox.Show("Операция прервана");
                        return;
                    }
                    Load_indicator++;
                    string text = Convert.ToString(FileUsing.OpenWordprocessingDocumentReadonly(path.FileName));
                    try
                    {
                        if (text.Contains(FindText))
                        {
                            App.Current.Dispatcher.Invoke((System.Action) delegate
                            {
                                PathSearchFiles.Add(new PathFile {
                                    FileName = path.FileName
                                });                                                            // так как список может обновится только
                                //из потока, где он был создан проделегируем выполнение данного действия основному потоку
                            });
                            // MessageBox.Show(text);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
                searchProcess         = false;
                BreakButtonVisibality = "Collapsed";
            });

            // MessageBox.Show(Convert.ToString(PathSearchFiles.Count));
        }