public void WalkDirectoryTree(System.IO.DirectoryInfo root)
        {
            System.IO.FileInfo[]      files   = null;
            System.IO.DirectoryInfo[] subDirs = null;
            // First, process all the files directly under this folder
            try
            {
                files = root.GetFiles($"*.*");
            }
            catch (UnauthorizedAccessException e)
            {
                Log.Add(e.Message);
            }
            catch (System.IO.DirectoryNotFoundException e)
            {
                Log.Add(e.Message);
            }

            int CurrentSearchId = DbManager.GetLastSearchId();

            if (files != null)
            {
                foreach (System.IO.FileInfo fi in files)
                {
                    if (fi.Name.ToLower().Contains(SearchString.ToLower()))
                    {
                        //raze event when file found
                        FileSearchHandler?.Invoke(fi);
                        //save file in db;
                        DbManager.saveFile(fi, CurrentSearchId);
                    }
                }

                // find all the subdirectories under this directory.
                subDirs = root.GetDirectories();
                foreach (System.IO.DirectoryInfo dirInfo in subDirs)
                {
                    // Resursive call for each subdirectory.
                    WalkDirectoryTree(dirInfo);
                }
            }
        }
Beispiel #2
0
 public MainWindow()
 {
     InitializeComponent();
     fileSearchHandler = new FileSearchHandler(this);
 }