Monitorando diretório com .NET

Pessoal, recentemente estive estudando para certificação da prova do framework .NET e em um dos  capítulos do livro da certificação fala sobre monitoramento de diretório, li toda a teoria, porém não cheguei a implementar pois achei a codificação chata para se fazer . Estava com um tempo livre e resolvi implementar algo para monitorar os meus diretórios, algo que me mostrasse o que estava acontecendo na minha máquina, logo segue abaixo um código com uma implementação bem simples sobre essa classe bem fácil de ser utilizada.

Foram criados para esse Form os seguintes controles:

– 2 Labels

-1 Textbox

– 1 Listbox

– 1 Button


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace BKPPEN
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            btnDir.Visible = false;
           
        }

        // Objeto que fica escutando o diretório
        private FileSystemWatcher objFileSystemWatcher;
        private delegate void addItemListHandler(string strValue);
 

        private void btnDir_Click(object sender, EventArgs e)
        {
            //DialogResult objDialog = ShowDialog();
            //txtDir.Text = objDialog.;
           
        }

        private void btnManager_Click(object sender, EventArgs e)
        {
            objFileSystemWatcher = new System.IO.FileSystemWatcher(txtDir.Text);

            //Adiciono os delegates

            objFileSystemWatcher.Changed 
             += new System.IO.FileSystemEventHandler(fileSystemWatcher_Changed);

            objFileSystemWatcher.Created
            += new System.IO.FileSystemEventHandler(fileSystemWatcher_Created);

            objFileSystemWatcher.Deleted 
            += new System.IO.FileSystemEventHandler(fileSystemWatcher_Deleted);

            objFileSystemWatcher.Renamed 
            += new System.IO.RenamedEventHandler(fileSystemWatcher_Renamed);

            //Ativo os subsdiretorios

            objFileSystemWatcher.IncludeSubdirectories = true;

            //Monitorar todos os arquivos

            objFileSystemWatcher.Filter = "*.*";
            objFileSystemWatcher.EnableRaisingEvents = true;

 

        }

        private void fileSystemWatcher_Changed(object sender, System.IO.FileSystemEventArgs e)
        {
            //Adiciono na list box

            addItemLit("Alteração do arquivo/pasta >> " + e.Name + " << ");
        }
        private void fileSystemWatcher_Created(object sender, System.IO.FileSystemEventArgs e)
        {
            //Adiciono na list box

            addItemLit("Criação do arquivo/pasta >> " + e.Name + " << ");

 

        }
        private void fileSystemWatcher_Deleted(object sender, System.IO.FileSystemEventArgs e)
        {
            //Adiciono na list box

            addItemLit("Exclusão do arquivo/pasta >> " + e.Name + " << ");

        }
        void fileSystemWatcher_Renamed(object sender, System.IO.RenamedEventArgs e)

        {

            //Adiciono na list box

            addItemLit("Renomeado o nome do arquivo/pasta >> " + e.Name + " << ");

        }

 

        private void addItemLit(string strValue)

        {

            if (lstAdd.InvokeRequired)

                lstAdd.Invoke(new addItemListHandler(addItemLit), new object[] { strValue });

            else

                lstAdd.Items.Add(strValue);

        }

 
    }
}

 Qualquer dúvida gritem!!!

[]´s

Anúncios

Tags:

2 Respostas to “Monitorando diretório com .NET”

  1. Pedro Majado Says:

    Ae Sr. Kokada, são mto interessantes suas publicações. Agora já sei monitorar diretório com .Net

    Estou aguardando as dicas sobre a plataforma Progress tbm.

    Abraços.

  2. FabioEduardo Says:

    Ahhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s


%d blogueiros gostam disto: