Esempio n. 1
0
        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}");
            }
        }
Esempio n. 2
0
        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);
                    }
                }