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); } } }
public MainWindow() { InitializeComponent(); fileSearchHandler = new FileSearchHandler(this); }