Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
DmitryStark
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
#1

Игнорирование файлов, к которым нет доступа

26.02.2015, 20:42. Просмотров 838. Ответов 3
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
10
public static IEnumerable<FileData> EnumerateAllFiles(DirectoryInfo directoryInfo, Random random)
{
            var listOfFiles = directoryInfo.GetFiles();
            var listOfDirectories = directoryInfo.GetDirectories();
            foreach (var file in listOfFiles)
                yield return new FileData { Size = file.Length, FileExtension = file.Extension };
            foreach (var dir in listOfDirectories)
                foreach (var inf in EnumerateAllFiles(dir, random))
                    yield return inf;
}
Есть сей код. Необходимо создать последовательность из данных о файлах (размер, расширение) в директории и ее поддиректориях. Проблема в том, что для доступа к некоторым файлам необходимы права. Как можно это обойти? Из условия задачи такие файлы можно просто пропустить.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2015, 20:42
Ответы с готовыми решениями:

Игнорирование файлов.
При запуске внешних приложений через Process, игнорируются принадлежащие этому...

Убить процесс к которому нет доступа
Есть острая вырубать одну программу, которая работает на основе вируса. Нужно...

Защита файлов от несанкционированного доступа
Добрый вечер! C# изучаю не так давно. В институте поставили задачу, написать...

Нужно остановить таймер, к переменной которого нет доступа
Всем привет. Пишу игрушку. Есть поле с шариками. Если кликают мышкой по...

Remoting, удаленный вызов Events: Нет доступа к свойствам и методам объектов
При использовании (.NET Remoting) Singleton-объектов (которые совместно...

3
Psilon
Master of Orion
Эксперт .NET
5989 / 4842 / 901
Регистрация: 10.07.2011
Сообщений: 14,459
Записей в блоге: 5
Завершенные тесты: 4
27.02.2015, 01:43 #2
DmitryStark, пустой трай кетч конечно же.
0
DmitryStark
0 / 0 / 0
Регистрация: 26.02.2015
Сообщений: 22
27.02.2015, 18:09  [ТС] #3
Пробовал, не вышло. Не совсем понимаю, как он работает. Как я понял, если отловлено исключение, то выполнится кетч. Хотелось бы наоборот

Добавлено через 11 часов 59 минут
Да и к тому же yield return невозможен внутри try
0
Psilon
Master of Orion
Эксперт .NET
5989 / 4842 / 901
Регистрация: 10.07.2011
Сообщений: 14,459
Записей в блоге: 5
Завершенные тесты: 4
27.02.2015, 20:03 #4
Лучший ответ Сообщение было отмечено DmitryStark как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        public static IEnumerable<FileInfo> EnumerateAllFiles(DirectoryInfo directoryInfo)
        {
            FileInfo[] listOfFiles;
            try
            {
                listOfFiles = directoryInfo.GetFiles();
            }
            catch (UnauthorizedAccessException)
            {
                yield break;
            }
            var listOfDirectories = directoryInfo.GetDirectories();
            foreach (var file in listOfFiles)
                yield return file;
            foreach (var dir in listOfDirectories)
                foreach (var inf in EnumerateAllFiles(dir))
                    yield return inf;
        }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2015, 20:03

Получения всех файлов в папке и подпапках игнорируя ошибку с правами доступа
К слову сам вопрос. Как получить все файлы в папке и подпапках игнорирую ошибку...

Нет доступа к бд: Cannot open database requested by the login
Cannot open database requested by the login. Как исправить через Visual studio?

Игнорирование файлов, к которым нет доступа
Доброго времени суток. Возник вопрос: появилась необходимость получить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru