Home Backend Development C#.Net Tutorial Sharing specific examples of how C# uses the FileSystemWatcher control to implement file monitoring

Sharing specific examples of how C# uses the FileSystemWatcher control to implement file monitoring

Aug 07, 2017 pm 01:11 PM
.net

This article mainly introduces the file monitoring function implemented by C# using the FileSystemWatcher control. It analyzes the functions of the C# FileSystemWatcher component and the specific usage skills for monitoring file changes in the form of examples. Friends in need can refer to the following

The example in this article describes the file monitoring function implemented by C# using the FileSystemWatcher control. Share it with everyone for your reference, as follows:

FileSystemWatcher

You can use the FileSystemWatcher component to monitor the file system and make changes to the file system reaction. By using the FileSystemWatcher component, you can quickly and easily start business processes when a specific file or directory is created, modified, or deleted.

For example, if a group of users are collaborating on a document stored in a shared directory on the server, you can use the FileSystemWatcher component to write an application to monitor changes to the shared directory. When a change is detected, the component can run a process to notify each user via email.

The component can be configured to monitor an entire directory and its contents, or a specific file or group of files in a specific directory. To monitor changes in all files, the Filter property should be set to the empty string (""); to monitor a specific file, the Filter property should be set to the file name of the file (for example, to monitor the file MyDoc. txt, set the Filter property to "MyDoc.txt"); you can also monitor changes in specific file types, for example, to monitor changes in text files, set the Filter property to "*.txt".

【Tip】Don’t ignore hidden files.

Can monitor several types of changes in directories or files. For example, you can monitor file or directory Attributes, LastWrite date and time, or Size changes. This goal can be achieved by setting the
FileSystemWatcher.NotifyFilter property to a value in NotifyFilters.

You can also monitor the renaming, deletion or creation of files or directories. For example, to monitor the renaming of a text file, set the Filter property to "*.txt", call a WaitForChanged method, and set the value of WatcherChangeTypes in the method to Renamed.

The following is an example. Create a FileSystemWatche component to monitor the directory specified at run time. The component is configured to monitor LastWrite and LastAccess time changes, as well as the creation, deletion or renaming of text files in the directory. If the file is changed, created, or deleted, the path to the file is printed to the console. When a file is renamed, both the old and new paths are printed to the console.

Example Use the FileSystemWatche component to monitor the directory specified at runtime:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

using System;

using System.IO;

public class watcher

{

  public static void Main(string[] args)

  {

    //如果没有指定目录,则退出程序

    if(args.Length!=1)

    {

      //显示调用程序的正确方法

      Console.WriteLine("usage:Watcher.exe(directory)");

      return;

    }

    //创建一个新的FileSystemWatcher并设置其属性

    FileSystemWatcher watcher=new FileSystemWatcher();

    watcher.Path=args[O];

    /*监视LastAcceSS和LastWrite时间的更改以及文件或目录的重命名*/

    watcher.NotifyFilter=NotifyFilters.LastAccess | NotifyFilters.LastWrite |

           NotifyFilters.FileName | NotifyFilters.DirectoryName;

    //只监视文本文件

    watcher.Filter="*.txt";

    //添加事件句柄

    //当由FileSystemWatcher所指定的路径中的文件或目录的

    //大小、系统属性、最后写时间、最后访问时间或安全权限

    //发生更改时,更改事件就会发生

    watcher.Changed +=new FileSystemEventHandler(OnChanged);

    //由FileSystemWatcher所指定的路径中文件或目录被创建时,创建事件就会发生

    watcher.Created +=new FileSystemEventHandler(OnChanged);

    //当由FileSystemWatcher所指定的路径中文件或目录被删除时,删除事件就会发生

    watcher.Deleted +=new FileSystemEventHandler(OnChanged) ;

    //当由FileSystemWatcher所指定的路径中文件或目录被重命名时,重命名事件就会发生

    watcher.Renamed +=new RenamedEventHandler(OnRenamed);

    //开始监视

    watcher.EnableRaisingEvents=true;

    //等待用户退出程序

    Console.WriteLine("Press\'q\' to quit the sample.");

    while(Console.Read()!='q');

  }

  //定义事件处理程序

  public static void OnChanged(object sender,FileSystemEventArgs e)

  {

    //指定当文件被更改、创建或删除时要做的事

    Console.WriteLine("file:"+e.FullPath+""+e.ChangeType);

  }

  public static void OnRenamed(object sender,RenamedEventArgs e)

  {

    //指定当文件被重命名时发生的动作

    Console.WriteLine("Fi]e:{0} renamed to{1}",e.OldFullPath,e.FullPath);

  }

}

Copy after login

The above is the detailed content of Sharing specific examples of how C# uses the FileSystemWatcher control to implement file monitoring. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Share several .NET open source AI and LLM related project frameworks Share several .NET open source AI and LLM related project frameworks May 06, 2024 pm 04:43 PM

The development of artificial intelligence (AI) technologies is in full swing today, and they have shown great potential and influence in various fields. Today Dayao will share with you 4 .NET open source AI model LLM related project frameworks, hoping to provide you with some reference. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel is an open source software development kit (SDK) designed to integrate large language models (LLM) such as OpenAI, Azure

What are the employment prospects of C#? What are the employment prospects of C#? Oct 19, 2023 am 11:02 AM

Whether you are a beginner or an experienced professional, mastering C# will pave the way for your career.

.NET performance optimization technology for developers .NET performance optimization technology for developers Sep 12, 2023 am 10:43 AM

If you are a .NET developer, you must be aware of the importance of optimizing functionality and performance in delivering high-quality software. By making expert use of the provided resources and reducing website load times, you not only create a pleasant experience for your users but also reduce infrastructure costs.

Performance differences between Java framework and .NET framework Performance differences between Java framework and .NET framework Jun 03, 2024 am 09:19 AM

In terms of high-concurrency request processing, .NETASP.NETCoreWebAPI performs better than JavaSpringMVC. The reasons include: AOT early compilation, which reduces startup time; more refined memory management, where developers are responsible for allocating and releasing object memory.

C# .NET Interview Questions & Answers: Level Up Your Expertise C# .NET Interview Questions & Answers: Level Up Your Expertise Apr 07, 2025 am 12:01 AM

C#.NET interview questions and answers include basic knowledge, core concepts, and advanced usage. 1) Basic knowledge: C# is an object-oriented language developed by Microsoft and is mainly used in the .NET framework. 2) Core concepts: Delegation and events allow dynamic binding methods, and LINQ provides powerful query functions. 3) Advanced usage: Asynchronous programming improves responsiveness, and expression trees are used for dynamic code construction.

C# .NET: Exploring Core Concepts and Programming Fundamentals C# .NET: Exploring Core Concepts and Programming Fundamentals Apr 10, 2025 am 09:32 AM

C# is a modern, object-oriented programming language developed by Microsoft and as part of the .NET framework. 1.C# supports object-oriented programming (OOP), including encapsulation, inheritance and polymorphism. 2. Asynchronous programming in C# is implemented through async and await keywords to improve application responsiveness. 3. Use LINQ to process data collections concisely. 4. Common errors include null reference exceptions and index out-of-range exceptions. Debugging skills include using a debugger and exception handling. 5. Performance optimization includes using StringBuilder and avoiding unnecessary packing and unboxing.

From Web to Desktop: The Versatility of C# .NET From Web to Desktop: The Versatility of C# .NET Apr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

The Continued Relevance of C# .NET: A Look at Current Usage The Continued Relevance of C# .NET: A Look at Current Usage Apr 16, 2025 am 12:07 AM

C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

See all articles