File Watcher в службе Windows - PullRequest
       0

File Watcher в службе Windows

2 голосов
/ 16 ноября 2011

Я начинаю пытаться разработать службу Windows, которая продолжает проверять папку (или группу папок) на наличие новых файлов или измененных файлов. Как только он обнаруживает любой новый файл или изменения (в файлы или папки), он копирует файлы (и любые новые папки) и вставляет их в другое место.

Я сделал то же самое с приложением Windows Forms, но в Службе Windows я не знаю, что делать - как я могу это сделать в Службе Windows?

Ответы [ 3 ]

7 голосов
/ 16 ноября 2011

Вы можете использовать класс FileSystemWatcher .

0 голосов
/ 17 декабря 2015

Вот как мы можем выполнить эту задачу, используя средство просмотра файлов без таймера

public void ProcessFile(string filepath)
    {
        var fileN ="newfilename";
        string destfile = "E:\\2nd folder" + fileN;
        File.Copy(filepath, destfile, true);
    }

    protected override void OnStart(string[] args)
    {
       String[] files = Directory.GetFiles("E:\\", "*.*");
        foreach (string file in files)
        {
            ProcessFile(file);
        }
        var fw = new FileSystemWatcher("folderpath");
        fw.IncludeSubdirectories = false;
        fw.EnableRaisingEvents = true;
        fw.Created += Newfileevent;

    }
    static void Newfileevent(object sender, FileSystemEventArgs e)
    {
        ProcessFile(e.FullPath);

    }
0 голосов
/ 16 декабря 2011

Вот правильный ответ на этот вопрос

public static void MyMethod()
{
    String[] files = Directory.GetFiles("E:\\", "*.*");
    foreach (string file in files)
    {
        var fileN = file.Substring(2);
        string destfile = "E:\\2nd folder" + fileN;
        File.Copy(file, destfile, true);
    }
}

Опрос необходим для просмотра файла через определенный промежуток времени .... этот код - просмотр файла 2сек

protected override void OnStart(string[] args)
{
    timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
    timer.Interval = 2000;
    timer.Enabled = true; 
    MyMethod();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...