Chúng ta sẽ tìm hiểu về FileSystemWatcher– lớp này cho phép chúng ta lắng nghe mọi sự thay đổi của một tập tin hoặc một thư mục trên HDD, mọi sự thay đối có thể là: Xóa, Đổi tên, Thêm mới, Sửa nội dung, …
Mời các bạn xem qua ví dụ sau
static void Main(string[] args)
{
//Watching thư mục
RunWatcher();
Console.Read();
}
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static void RunWatcher()
{
//Get đường dẫn
string path = System.Environment.CurrentDirectory;
//Check đường dẫn
if (path.Length < 2)
{
Console.WriteLine("Directory is not correct");
return;
}
//Tạo FileSystemWatcher
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
//Chỉ watch cho các file txt
//watcher.Filter = "*.txt";
//Chỉ watch cho all file
watcher.Filter = "*.*";
//Đăng ký event
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
//Begin watching.
watcher.EnableRaisingEvents = true;
Console.WriteLine("Directory is {0}",path);
}
//Define event
private static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}