Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4

Перехватить событие обращения пользователя к папке

13.02.2013, 12:06. Показов 3138. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Пишу на С#, встал вопрос, можно ли с его помощью перехватить событие обращения пользователя к какой-либо папке? То есть пока программа выполняется, если пользователь обращается к папке можно было бы определить, к какой именно, и либо передать управление дальше стандартному обработчику, либо отменить выполнение, запретив ему тем самым доступ.
Буду рад любым предложениям.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2013, 12:06
Ответы с готовыми решениями:

перехватить подписку на событие
Есть интерфейс, декларирующий события. Есть мой класс, реализующий интерфейс. Логика класса требует фиксировать все факты подписки и...

Как перехватить событие завершения работы Windows
Как перехватить событие завершения работы Windows (XP/Win7) в C#?

Как отловить событие создания файла в папке
Пользователь, к примеру, пытается создать в папке новый файл, или скопировать туда существующий. В зависимости от определенных условий мне...

5
 Аватар для Mr.kto
104 / 105 / 18
Регистрация: 18.08.2012
Сообщений: 308
13.02.2013, 12:28
Лучший ответ Сообщение было отмечено как решение

Решение

FiRSt1, мне тоже когда то нужно было осуществить слежку за папками ,вот что получилось
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
 
namespace ConsoleApp
{
    class MyDirectoryWatcher
    {
        readonly string _directoryPath;
        DateTime _lastAccessTime;
 
        public MyDirectoryWatcher(string pDirectoryPath)
        {
            _directoryPath = pDirectoryPath;
            _lastAccessTime = DateTime.Now;
            (new Task(TestDirectory)).Start();
        }
    
        private void TestDirectory()
        {
            while (true)
            {
                if ((new DirectoryInfo(_directoryPath)).LastAccessTime > _lastAccessTime)
                {
                    _lastAccessTime = DateTime.Now;
                    OnAccessed();
                }
                Thread.Sleep(100);
            }
        }
 
        public event Action<string> Accessed;
 
        protected void OnAccessed()
        {
            var handler = Accessed;
            if (handler != null)
            {
                handler(_directoryPath);
            }
        }
    }
 
    class Program
    {
       static void Main()
        {
            MyDirectoryWatcher[] watchers = new MyDirectoryWatcher[3];
            watchers[0] = new MyDirectoryWatcher(@"D:\tmp");
            watchers[0].Accessed += Program_Accessed;
            watchers[1] = new MyDirectoryWatcher(@"D:\tmp\1");
            watchers[1].Accessed += Program_Accessed;
            watchers[2] = new MyDirectoryWatcher(@"D:\tmp\2");
            watchers[2].Accessed += Program_Accessed;
            while (true) Thread.Sleep(100);
        }
 
        static void Program_Accessed(string dir)
        {
            Console.WriteLine(dir);
        }
    }
}
Конечно только те каталоги которые я прописал в коде
3
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
13.02.2013, 13:37  [ТС]
Спасибо за код, вроде добился с его помощью того, что хотел, правда костыль пришлось изобретать
0
 Аватар для Mr.kto
104 / 105 / 18
Регистрация: 18.08.2012
Сообщений: 308
13.02.2013, 13:40
FiRSt1, ну ничего, без труда ...
0
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 4
03.03.2013, 14:17  [ТС]
LastAccessTime нормально работает на ПК, но почему-то событие не срабатывает, в частности, на нескольких ноутбуках. Время изменяется только если в папку записать что-нибудь. Не подскажете, с чем это может быть связано?
0
 Аватар для raxper
10236 / 6614 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
03.03.2013, 15:01
ReadDirectoryChangesW()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2013, 15:01
Помогаю со студенческими работами здесь

Работа с sharpbox. Имя пользователя и путь к синхронизируемой папке
Ребят! Потребовалось получить имя пользователя и путь к синхронизируемой папке в приложении Dropbox Но не знаю, как вытащить их....

Доступ к сетевой папке, указав логин и пароль удаленного пользователя
Приветствую. Столкнулся с таким вопросом - в сети есть папка, доступ к ней есть не у всех. Естественно, когда я обращаюсь к ней из...

Как перехватить такое событие как закрытие текущего окна броузера?
Как перехватить такое событие как закрытие текущего окна броузера?

Перехватить событие вставки текста в TextBox
Разрабатываю (поддерживаю) приложение с использованием MVVM. Есть ДатаГрид, есть ДатаТемплейт, который используется для отображения айтемов...

Как создать событие и перехватить его?
Как создать событие и перехватить его?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru