Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как отслеживать изменения в файлах? 
:(
    Опции темы
Madrid
Дата 17.7.2007, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



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

namespace Lesson1_3
{
    class Program
    {
        static void w_Changed(object sender, FileSystemEventArgs e)
        {
            Console.WriteLine("Changed: {0}", e.FullPath);
        }

        static void Main(string[] args)
        {
            FileSystemWatcher w = new FileSystemWatcher(@"C:\WINDOWS");
            w.Filter = ".txt";
            w.IncludeSubdirectories = true;
            w.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.Size;

            w.Changed += new FileSystemEventHandler(w_Changed);
            w.EnableRaisingEvents = true;      
        }
    }
}


запускаю программу, добавляю символы в текстовый фаил, но на консоль ничего не выводится...в чём может быть ошибка?
PM MAIL   Вверх
Idsa
Дата 17.7.2007, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 14
Всего: 62



Цитата(Madrid @  17.7.2007,  18:28 Найти цитируемый пост)
в чём может быть ошибка?

Никакой ошибки нет. Просто у тебя програма заканчивает выполнение до обработки события Changed.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Madrid
Дата 17.7.2007, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



Почему заканчивает?Я запускаю программу, потом правлю фаил(программа в это время открыта), закрываю файл, на консоли пусто(хотя поидее там должна быть строка с именем изменённого файла).
PM MAIL   Вверх
mr.DUDA
Дата 18.7.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Idsa прав, а программа в это время открыта может быть потому что показывает "Нажмите любую клавишу для продолжения...". На консоль уже ничего выведено не будет.

А во-вторых, неправильно указан фильтр - не хватает *

Вот рабочий вариант:

Код
using System;
using System.IO;

class Program
{
    static void w_Changed(object sender, FileSystemEventArgs e)
    {
        Console.WriteLine("Changed: {0}", e.FullPath);
    }

    static void Main(string[] args)
    {
        FileSystemWatcher w = new FileSystemWatcher("C:\\");
        w.Filter = "*.txt";
        w.IncludeSubdirectories = true;
        w.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.Size;
        w.Changed += new FileSystemEventHandler(w_Changed);
        w.EnableRaisingEvents = true;

        Console.Read();
    }
}






--------------------
user posted image
PM MAIL WWW   Вверх
Madrid
Дата 18.7.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



Похоже вы правы!

Код

namespace Lesson1_3
{
    class Program
    {
        static void w_Changed(object sender, FileSystemEventArgs e)
        {
            Console.WriteLine("Changed: {0}", e.FullPath);
        }

        static void Main(string[] args)
        {
            
            FileSystemWatcher w = new FileSystemWatcher(@"C:\WINDOWS");
            w.Filter = "*.txt";
            w.IncludeSubdirectories = true;
            w.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.Size;

            w.Changed += new FileSystemEventHandler(w_Changed);
            w.EnableRaisingEvents = true;
            Thread.Sleep(20000);
            
        }
    }
}


Вот так всё работает нормально, если конечно успеваем отредактировать фаил за 20 секунд =).
PM MAIL   Вверх
mr.DUDA
Дата 18.7.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



FYI, подобные проги делают сервисами и стартуют при запуске винды.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1036 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.