private void ScanDrives(string drive) { DateTime startTime = DateTime.Now; DriveInfo di = new DriveInfo(drive); if (di.DriveType == DriveType.Fixed || di.DriveType == DriveType.Network && _netdrive == true) { if (di.IsReady) { _logger.Add($"Indexing drive: {drive}"); System.Native.IO.FileSystem.DirectoryInfo rootDirectoryInfo = new System.Native.IO.FileSystem.DirectoryInfo(di.RootDirectory.FullName); DirectoryTreeWalker(rootDirectoryInfo); _logger.Add($"Index for drive: {drive} Created in {(DateTime.Now - startTime).TotalMilliseconds}"); } else { _logger.Add($"Drive: {drive} was not ready"); } } else { _logger.Add($"Drive {di.Name} skipped driveType: {di.DriveType}"); } }
private void DirectoryTreeWalker(System.Native.IO.FileSystem.DirectoryInfo rootDirectoryInfo) { System.Native.IO.FileSystem.FileInfo[] files = null; if (!Filter.Contains(rootDirectoryInfo.Name.ToUpper())) { if (!FilterValidate(rootDirectoryInfo.Name, Filter)) { try { files = rootDirectoryInfo.GetFiles(); } catch (UnauthorizedAccessException e) { _logger.Add(e.Message); } }