Cấp bậc tác giả:

DOTNET

Lắng Nghe Các Thông Báo Thay Đổi Của Hệ Thống Tập Tin

Được viết bởi webmaster ngày 13/12/2015 lúc 12:43 AM
Trong một số trường hợp, chúng ta muốn liên tục cập nhật thông tin về sự thay đổi của một tập tin hoặc thư mục nào đó cho người dùng và chúng ta không muốn dùng While(true) để liên tục quét đối tượng xem có thay đổi gì hay không thì cách làm sau đây là tối ưu cho nhu cầu trên.
  • 0
  • 7048

Lắng Nghe Các Thông Báo Thay Đổi Của Hệ Thống Tập Tin

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, …

dm-2.gif

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);
        }

Nguồn bài viết: Sưu tầm

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML