71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
|
||||||
1 | ||||||
Прерывается работа цикла27.02.2014, 12:51. Показов 1354. Ответов 10
Метки нет (Все метки)
Код ищет видео файлы на диске, но при попытке поиска в папке корзины $RECYCLE.BIN\код учетки
срабатывают исключения 3 раза и поиск прекращается. То есть внутренний цикл вообще не срабатывает если искать с корня диска. Права админа не помогают, ошибка повторяется на SystemVolumeInformation. Есть какой нибудь способ кроме черного списка починить код?
0
|
27.02.2014, 12:51 | |
Ответы с готовыми решениями:
10
Работа цикла foreach Работа цикла по таймеру Работа со строками (использование цикла с параметром) Task.Factory.Startnew и непонятная работа цикла |
Администратор
|
|
27.02.2014, 15:06 | 4 |
Попробуйте в проводнике открыть эту папку. Даже от имени администратора не получится. Вам обязательно в неё лезть?
$RECYCLE.BIN лежит в корне, а не в System Volume Information.
0
|
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
|
|
27.02.2014, 15:25 [ТС] | 5 |
tezaurismosis, в курсе про папки, и где куда лезть не надо.
Про системвольюм я написал потому, что если дать программе права админа проблема с $RECYCLE.BIN исчезает так как появляется туда доступ. Мне нужно не искать в этих папках, а сделать проверку, и желательно без чернго списка. Что то вроде исключить из массива Directory.GetFiles(@"V:", r, System.IO.SearchOption.AllDirectories) папки к которым нет доступа, чтобы цикл не прерывался.
0
|
192 / 192 / 29
Регистрация: 03.12.2009
Сообщений: 853
|
|
27.02.2014, 15:27 | 6 |
добавьте try {} catch {} внутрь цикла и прокатит
0
|
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
|
|
27.02.2014, 15:41 [ТС] | 7 |
da1z, Внутри первого цикла и так есть try {} catch {},
а второй цикл не срабатывает если в Directory.GetFiles(@"V:", r, System.IO.SearchOption.AllDirectories) есть файлы к которым нет доступа. По всем правилам из за того что стоит catch на исключение, исключения должны пропустится(в данном случае с выводом меседж боксов) и дальше искать нужные файлы. В данном же случае цикл вообще не запускается, из за ошибки доступа Directory.GetFiles(@"V:", r, System.IO.SearchOption.AllDirectories) похоже не может заполнится данными.
0
|
192 / 192 / 29
Регистрация: 03.12.2009
Сообщений: 853
|
|
27.02.2014, 15:43 | 8 |
ну если во втором цикле его добавить, разве не помогает?
0
|
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
|
||||||
27.02.2014, 16:12 [ТС] | 9 | |||||
da1z, нет, второй цикл не запускается совсем.
Смысл в том что массив данные которого в условии цикла вроде как пуст (не может заполнится из за прав доступа). метод из System.IO; Если он не может игнорировать папки к которым нет доступа похоже придётся переписывать. Добавлено через 14 минут Даже вот этот код не работает
0
|
2 / 2 / 1
Регистрация: 20.02.2014
Сообщений: 9
|
||||||
27.02.2014, 16:32 | 10 | |||||
Driwars, Вот код поиска файлов с обработкой исключений:
0
|
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
|
||||||
27.02.2014, 16:56 [ТС] | 11 | |||||
Reflexio, Спасибо. Ваш код тоже самое что и мой по сути, только облегченный. Ещё и вызывает сам себя.
Переделал все работает. Только пришлось разделить поиск файлов в корне диска. И в папках не из черного списка.
0
|
27.02.2014, 16:56 | |
27.02.2014, 16:56 | |
Помогаю со студенческими работами здесь
11
WebClient.DownloadFileTaskAsync() FTP прерывается загрузка Как из цикла вывести данные для другого цикла? Почему прерывается работа программы после чтения их файла? Внезапно при запуске прерывается работа виртуальной машины Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |