0 / 0 / 1
Регистрация: 14.05.2015
Сообщений: 4
1
.NET 3.x

FileSystemWatcher как отследить действия

22.06.2016, 09:12. Показов 2033. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть следующая функция для слежения за папкой:
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
 public void dirwatcher()
        {
            string put = pathme;
            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Path = put;
            watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
            watcher.Filter = "sb*.sav";
            
            watcher.Created += new FileSystemEventHandler(OnChanged);
            watcher.Deleted += new FileSystemEventHandler(OnDelete);
            watcher.Renamed += new RenamedEventHandler(OnRenamed);
 
            watcher.EnableRaisingEvents = true;
            if (watch == true)
            {
                watcher.EnableRaisingEvents = false;
            }
        }
       
 
        string pathfile;
        
        private void OnChanged(object source, FileSystemEventArgs e)
        {
            pathfile = e.Name;
            namefile.Invoke(new test(parssb));
        }
       
 
        public void OnDelete(object source, FileSystemEventArgs e)
        {
            new Thread(delegate()
                {
                    info.Invoke((ThreadStart)delegate()
                    {
                        info.Text = "Файл : " + e.Name + " был удален из папки";
                    });
                    eventslbl.Invoke((ThreadStart)delegate()
                    {
                        eventslbl.Visible = true;
 
                    });
                    eventspic.Invoke((ThreadStart)delegate()
                    {
                        eventspic.Visible = true;
                    });
 
                }).Start();
        }
 
 
        private static void OnRenamed(object source, RenamedEventArgs e)
        {
            Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
        }
Работает только в случае, если действия с файлами происходит внутри папки (если к примеру, скопировать файл внутри папки, то он его замечает), но когда 1С создает файл в папке, куда смотрит моя прога, то она не видит файла, помогите разобраться
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2016, 09:12
Ответы с готовыми решениями:

FileSystemWatcher - как отследить копирование папки с файлами?
Не понимаю как отследить копирование или перемещение папки с файлами. Отслеживание создания...

Как отследить действия в БД?
Скрипт не менялся уже как пару месяцев, в скрипте нет truncate, но вот сегодня заметил что таблица...

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

Отследить последние действия пользователя по БД
Здравствуйте, скажите можно как-то отследить последние действия определенного пользователя в БД...

2
54 / 54 / 10
Регистрация: 28.06.2012
Сообщений: 224
22.06.2016, 10:23 2
bowxdlal, пробовали в watcher.NotifyFilter добавить NotifyFilters.CreationTime?

Ещё один момент, у Вас watcher – локальная переменная, то есть после выполнения метода она будет удалена.
Чтобы этого избежать, сделайте её полем класса, а в методе будет инициализация.
1
0 / 0 / 1
Регистрация: 14.05.2015
Сообщений: 4
22.06.2016, 10:31  [ТС] 3
немного разобрался с проблемой, но суть остается вот в чем: 1Ска выплевывает файл изначально в расширении .tmp, затем делает его .sav FileSystemWatcher видит её только на стадии .tmp и не может с ним оперировать т.к. файл занят 1ской. Есть какие-нибудь методы решения такой проблемы?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2016, 10:31
Помогаю со студенческими работами здесь

Отследить все действия программы
Возможно такое сделать? Т.е. я запускаю экзешник, и мне нужен полный отчет о его действиях. Что...

отследить действия пользователя с твоей ссылки
Возможно ли отследить действия пользователя на чужом интернет-магазине, если он перешел с твоей...

Действия пользователей в базе, отследить и использовать
Всем привет. С Access 2007 знакома недавно, опыт не большой, программистом не являюсь. Ребята,...

Отследить процессы в Windows, время их действия и занимаемую ими память
Нужно отследить в данный момент какие процессы происходят в виндовс 7 сколько времени длятся...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru