Отказано в доступе по данному пути

Написал небольшую программку, которая пробегается по всем папкам на дисках компьютера, получается оттуда все файлы и потом должна скопировать во все доступные директории некоторый файл, но вот проблема, при попытки копирования любая директория оказывается недоступна. Хотя когда получает все пути всех файлов все хорошо, те директории к которым нету доступа игнорирует, а в доступных получает пути файлов. Мне кажется ненормально, что резко любые директории стали недоступны Вот код:

using System;
using System.Collections.Generic;
using System.IO;

namespace тест_5пр
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] Drives = Environment.GetLogicalDrives();//Получаем диски на комьютере
            List<DirectoryInfo> directories = new List<DirectoryInfo>();//Создаем список для путей всех папок

            //обход дисков - запись всех путей всех папок на дисках в список
            for (int i = 0; i < Drives.Length; i++)
            {
                DirectoryInfo dinfo = new DirectoryInfo(Drives[i]);//Получаем дерикторию в которой надо обойти папки, в данном случае диск
                DirectoryInfo[] dirs = dinfo.GetDirectories();//Получаем поддериктории(папки в папке) из текущей дериктории(в данном случае диск)

                foreach (DirectoryInfo current in dirs)
                {
                    directories.Add(current);//Добавляем в список дериктории из массива (т.к. может быть больше одного диска на компьютере)
                }
            }


            //обход всех папок и получение файлов в них
            List<FileInfo> filesList = new List<FileInfo>();

            for (int i = 0; i < directories.Count; i++)
            {
                try//оборачиваем try catch из за возможности встретить дериктории к которым запрещен доступ
                {
                    DirectoryInfo dinfo = new DirectoryInfo(directories[i].FullName);//получаем полный путь каждой папки находящихся на дисках
                    FileInfo[] files = dinfo.GetFiles();//получаем файлы из текущей папки
                    foreach (FileInfo current in files)
                    {
                        filesList.Add(current);//Добавляем в общий список файлов
                    }
                }
                catch (Exception ex)
                {
                }
            }

            //копирование файла во все доступные дериктории
            for (int i = 0; i < directories.Count; i++)
            {
                try
                {
                    File.Copy("a.exe", directories[i].FullName);

                }
                catch (Exception ex)
                {
                    Console.WriteLine("Невозможно скопировать");
                }
            }
        }
    }
}

Ответы (0 шт):