Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
.NET 3.x

Access to the path 'C:\System Volume Information' is denied при поиске

30.10.2012, 21:08. Показов 4237. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уже замотался с этим. Вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
static List<string> LookIn(string path)
        {
            List<string> files = new List<string>();
            List<string> dirs = new List<string>();
 
            try
            {
                files.AddRange(Directory.GetFiles(path));
                dirs.AddRange(Directory.GetDirectories(path));
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine(e.Message);
            }
            if (files != null)
            {
                for (int i = 0; i <= files.Count - 1; i++)
                {
                    if (CheckFileLessThan2Gb(files[i])) { }
                    else files.RemoveAt(i);
                }
                
 
                if (dirs != null)
                {
                    foreach (string dir in dirs)
                    {
                        LookIn(dir);
                    }
                }
                return files;
            }
            else return null;
        }
Сейчас тот самый результат как и с
C#
1
files.AddRange(Directory.GetFiles(path,"*.*",SearchOption.AllDirectories));
Подскажите как обойти эту директорию, мне ее не нужно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.10.2012, 21:08
Ответы с готовыми решениями:

System Volume Information
Расскажите, пожалуйста, мне подробно о папке System Volume Information на системном диске: 1. Зачем она нужна? 2. Можна ли удалять в...

System Volume Information
Доброго вечера! Пытаюсь освоить хоть азы) В курсе что папка &quot;System Volume Information&quot; используется для восстановления Windows, но как...

System Volume Information
После слёта Windows и восстановления с помощью установочного диска. в &quot;Защите системы&quot; добавились к дискам ACER и DATA две папки: ACER...

20
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.10.2012, 21:26
За исключением того, что у вас ни files, ни dirs никогда не будут null, никаких проблем в коде не вижу.
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
30.10.2012, 21:29  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
что у вас ни files, ни dirs никогда не будут null
Вы о том, что проверку на null можно снять?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.10.2012, 21:33
Цитата Сообщение от Jettard Посмотреть сообщение
Вы о том, что проверку на null можно снять?
Ну да, в данном случае от нее толку никакого.

Но я не совсем понял в чем проблема.
В том, что вылетает исключение UnauthorizedAccess и метод рушится, или в том, что при вылете этого исключения вылетает сообщение в консоль?
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
30.10.2012, 21:37  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
метод рушится
В этом проблема. Я бы хотел просто пропустить эту папку.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
30.10.2012, 21:47
Цитата Сообщение от Jettard Посмотреть сообщение
В этом проблема. Я бы хотел просто пропустить эту папку.
У меня не рушится

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            LookIn(@"C:/Windows");
            Console.WriteLine("Работа закончена");
            Console.ReadKey();
        }
 
        static List<string> LookIn(string path)
        {
            List<string> files = new List<string>();
            List<string> dirs = new List<string>();
 
            try
            {
                files.AddRange(Directory.GetFiles(path));
                dirs.AddRange(Directory.GetDirectories(path));
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine(e.Message);
            }
            for (int i = 0; i <= files.Count - 1; i++)
            {
                if (CheckFileGreaterThan2Gb(files[i]))
                    files.RemoveAt(i);
            }
 
            foreach (string dir in dirs)
            {
                LookIn(dir);
            }
            return files;
        }
 
        private static bool CheckFileGreaterThan2Gb(string file)
        {
            return new FileInfo(file).Length > 2147483648L;
        }
    }
}
Добавлено через 3 минуты
Может у тебя в студии все исключения включены? Можно включить, чтобы вылетали те исключения, которые обычно не вылетают. Построй прогу и попробуй её запустить без отладки, вроде бы не должно ничего рушиться, у меня же работает.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.10.2012, 21:47
Цитата Сообщение от Casper-SC Посмотреть сообщение
У меня не рушится
Вот я тоже никаких обрушений не заметил.

Скорее всего по окончании работы алгоритма у автора в списке не все найденные файлы хранятся, потому он грешит на исключение.
Наверное вот тут надо немного исправить:
C#
1
2
3
4
5
            foreach (string dir in dirs)
            {
                files.AddRange(LookIn(dir)); // А то файлы из подпапок возвращаются "в никуда".
            }
            return files;
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
30.10.2012, 21:57  [ТС]
Цитата Сообщение от Casper-SC Посмотреть сообщение
Может у тебя в студии все исключения включены? Можно включить, чтобы вылетали те исключения, которые обычно не вылетают. Построй прогу и попробуй её запустить без отладки, вроде бы не должно ничего рушиться, у меня же работает.
Не знаю, никогда ничего не включал. Где это посмотреть?


Цитата Сообщение от kolorotur Посмотреть сообщение
Скорее всего по окончании работы алгоритма у автора в списке не все найденные файлы хранятся, потому он грешит на исключение.
Наверное вот тут надо немного исправить:
Исправил как ты написал, и запустил из под консоли из папки проектов(обычно я запускаю Через Дебаг-Запуск без дебага). Ну и собираю я тоже в дебаге.

Еще добавлю, в главной программе я вот такие действия делаю
C#
1
2
3
4
5
 List<string> ListOfFiles = new List<string>();
 
Также пересобрал в Релиз. Вылетает.
 
                    ListOfFiles.AddRange(LookIn(args[0]));
- Записываю все значения, возвращенные функцией в список, и планирую еще действия с этим списком делать...
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.10.2012, 22:02
Цитата Сообщение от Jettard Посмотреть сообщение
запустил из под консоли из папки проектов
И что произошло?
Выскочило сообщение а-ля "приложение упало - отправить отчет Майкрософту?"?
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
30.10.2012, 22:03
Цитата Сообщение от Jettard Посмотреть сообщение
Не знаю, никогда ничего не включал. Где это посмотреть?
Отладка -> Исключения. Там галочки ставишь...
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
30.10.2012, 22:08  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
И что произошло?
Нет) Написало что нету доступа и давай, до свидания
Цитата Сообщение от Casper-SC Посмотреть сообщение
Отладка -> Исключения. Там галочки ставишь...
Сейчас посмотрю.

Добавлено через 3 минуты
Casper-SC, а что мне сделать? Снять галку с исключения о запрещенном доступе?

З.Ы.: у меня ХР СП3
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.10.2012, 22:13
Цитата Сообщение от Jettard Посмотреть сообщение
Написало что нету доступа и давай, до свидания
То есть окошко с программой схлопнулось, ничего не сказав?
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
30.10.2012, 22:15  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
То есть окошко с программой схлопнулось, ничего не сказав?
Нет. Просто отписало. Смотри скрин.
Миниатюры
Access to the path 'C:\System Volume Information' is denied при поиске  
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.10.2012, 22:18
А как выглядит метод Main?
Может там список-то и не выводится?
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
30.10.2012, 22:20  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Может там список-то и не выводится
А он и не должен. Я просто хочу скопировать список файлов в новый список.
Вот
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static void Main(string[] args)
        {
            if (args.Length != 0)
            {
                if (args.Length == 1)
                {
                    List<string> ListOfFiles = new List<string>();
 
                    ListOfFiles.AddRange(LookIn(args[0]));
                }
                else Console.WriteLine("So many arguments... o_O");
            }
            else Console.WriteLine("Write some stuff here!");
        }
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.10.2012, 22:22
Jettard, ну так получается, что программа работает корректно.
Список файлов получен, скопирован в новый список, программа завершает работу.
А каких действий вы от нее ожидали?

Ну, добавьте строчку:
C#
1
2
ListOfFiles.AddRange(LookIn(args[0]));
Console.WriteLine("Found {0} files", ListOfFiles.Count);
0
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
30.10.2012, 22:28  [ТС]
kolorotur, я хотел увидеть в конце "Нажмите любую клавишу для продолжения...". А вместо этого пишет это исключение.

Добавлено через 1 минуту
Цитата Сообщение от kolorotur Посмотреть сообщение
Console.WriteLine("Found {0} files", ListOfFiles.Count);
В списке 66766 файлов. Но исключение опять пишет.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
30.10.2012, 22:32
Цитата Сообщение от Jettard Посмотреть сообщение
Но исключение опять пишет.
Так вы же сами указали писать исключение.
Вот тут вот:
C#
1
2
3
4
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine(e.Message);
            }
Можете заменить на что-нибудь другое.
Например, пусть пищит при ошибках:
C#
1
2
3
4
            catch (UnauthorizedAccessException e)
            {
                Console.Beep();
            }
1
 Аватар для Jettard
41 / 39 / 7
Регистрация: 27.05.2010
Сообщений: 252
30.10.2012, 22:36  [ТС]
Кажется я понял. Я правильно сделал прогу, все работает, и у меня претензии к тому, что я сам написал. Мда...

Добавлено через 48 секунд
Спасибо за помощь
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
30.10.2012, 22:37
А проверь, вот этот код у тебя сработает?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> files = LookIn(@"C:/Windows");
            Console.WriteLine("Работа закончена. Найдено {0} файлов.", files.Count);
            Console.ReadKey();
        }
 
        static List<string> LookIn(string path)
        {
            List<string> files = new List<string>();
            List<string> dirs = new List<string>();
 
            try
            {
                files.AddRange(Directory.GetFiles(path));
                dirs.AddRange(Directory.GetDirectories(path));
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine(e.Message);
            }
            for (int i = 0; i <= files.Count - 1; i++)
            {
                if (CheckFileGreaterThan2Gb(files[i]))
                    files.RemoveAt(i);
            }
 
            foreach (string dir in dirs)
            {
                files.AddRange(LookIn(dir));
            }
            return files;
        }
 
        private static bool CheckFileGreaterThan2Gb(string file)
        {
            return new FileInfo(file).Length > 2147483648L;
        }
    }
}
Вот во вложении глянь как у меня работает.

Не по теме:

Ого тут написали, не видел. Вложение думаю можно удалять, всё равно оно никому не нужно абсолютно.

Вложения
Тип файла: zip ScreenCapture_30.10.2012 22.33.23.zip (1.23 Мб, 8 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.10.2012, 22:37
Помогаю со студенческими работами здесь

System volume information
На моём пэка стояли 2 системы, xp64bit(сейчас просто грохнута со всеми файлами) и win732bit, хочу поставить win8 но для объединения раздела...

RECYCLER и System Volume Information
После удаления вируса на диске Z появились 2 папки RECYCLER и System Volume Information,после их удаления они появляются снова.Помогите от...

RECYCLER и System Volume Information
на диске D и C у меня есть папки RECYCLER и System Volume Information. Что это за папки? В папке RECYCLER есть три файла типа...

system volume information. undead
В мое отсутствие, после ярого пользования компа девушкой, появилиась пака system volume information и ее подруга Рэйсикл. Что такое и для...

Папка System volume information
Здравствуите мне интересуит что такое папка System volume information можно ли удалиьт эту папку если он заразилсья вирусам ???


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru