FileSystemWatcher 构造函数
定义
初始化 FileSystemWatcher 类的新实例。Initializes a new instance of the FileSystemWatcher class.
重载
| FileSystemWatcher() |
初始化 FileSystemWatcher 类的新实例。Initializes a new instance of the FileSystemWatcher class. |
| FileSystemWatcher(String) |
在给定要监视的指定目录的情况下,初始化 FileSystemWatcher 类的新实例。Initializes a new instance of the FileSystemWatcher class, given the specified directory to monitor. |
| FileSystemWatcher(String, String) |
在给定要监视的指定目录和文件类型的情况下,初始化 FileSystemWatcher 类的新实例。Initializes a new instance of the FileSystemWatcher class, given the specified directory and type of files to monitor. |
FileSystemWatcher()
初始化 FileSystemWatcher 类的新实例。Initializes a new instance of the FileSystemWatcher class.
public:
FileSystemWatcher();
public FileSystemWatcher ();
Public Sub New ()
示例
下面的示例创建一个 FileSystemWatcher 对象,用于监视运行时指定的目录。The following example creates a FileSystemWatcher object to watch the directory specified at run time. FileSystemWatcher对象监视和时间的更改 LastWrite LastAccess ,以及用于创建、删除或重命名目录中的文本文件。The FileSystemWatcher object watches for changes in LastWrite and LastAccess times, and for the creation, deletion, or renaming of text files in the directory. 如果更改、创建或删除了某个文件,则该文件的路径将显示在控制台中。If a file is changed, created, or deleted, the path to the file displays to the console. 重命名文件后,旧路径和新路径将显示在控制台中。When a file is renamed, the old and new paths display to the console.
此示例使用 System.Diagnostics 和 System.IO 命名空间。This example uses the System.Diagnostics and System.IO namespaces.
#include "pch.h"
using namespace System;
using namespace System::IO;
class MyClassCPP
{
public:
int static Run()
{
FileSystemWatcher^ watcher = gcnew FileSystemWatcher("C:\\path\\to\\folder");
watcher->NotifyFilter = static_cast<NotifyFilters>(NotifyFilters::Attributes
| NotifyFilters::CreationTime
| NotifyFilters::DirectoryName
| NotifyFilters::FileName
| NotifyFilters::LastAccess
| NotifyFilters::LastWrite
| NotifyFilters::Security
| NotifyFilters::Size);
watcher->Changed += gcnew FileSystemEventHandler(MyClassCPP::OnChanged);
watcher->Created += gcnew FileSystemEventHandler(MyClassCPP::OnCreated);
watcher->Deleted += gcnew FileSystemEventHandler(MyClassCPP::OnDeleted);
watcher->Renamed += gcnew RenamedEventHandler(MyClassCPP::OnRenamed);
watcher->Error += gcnew ErrorEventHandler(MyClassCPP::OnError);
watcher->Filter = "*.txt";
watcher->IncludeSubdirectories = true;
watcher->EnableRaisingEvents = true;
Console::WriteLine("Press enter to exit.");
Console::ReadLine();
return 0;
}
private:
static void OnChanged(Object^ sender, FileSystemEventArgs^ e)
{
if (e->ChangeType != WatcherChangeTypes::Changed)
{
return;
}
Console::WriteLine("Changed: {0}", e->FullPath);
}
static void OnCreated(Object^ sender, FileSystemEventArgs^ e)
{
Console::WriteLine("Created: {0}", e->FullPath);
}
static void OnDeleted(Object^ sender, FileSystemEventArgs^ e)
{
Console::WriteLine("Deleted: {0}", e->FullPath);
}
static void OnRenamed(Object^ sender, RenamedEventArgs^ e)
{
Console::WriteLine("Renamed:");
Console::WriteLine(" Old: {0}", e->OldFullPath);
Console::WriteLine(" New: {0}", e->FullPath);
}
static void OnError(Object^ sender, ErrorEventArgs^ e)
{
PrintException(e->GetException());
}
static void PrintException(Exception^ ex)
{
if (ex != nullptr)
{
Console::WriteLine("Message: {0}", ex->Message);
Console::WriteLine("Stacktrace:");
Console::WriteLine(ex->StackTrace);
Console::WriteLine();
PrintException(ex->InnerException);
}
}
};
int main()
{
MyClassCPP::Run();
}
using System;
using System.IO;
namespace MyNamespace
{
class MyClassCS
{
static void Main()
{
using var watcher = new FileSystemWatcher(@"C:\path\to\folder");
watcher.NotifyFilter = NotifyFilters.Attributes
| NotifyFilters.CreationTime
| NotifyFilters.DirectoryName
| NotifyFilters.FileName
| NotifyFilters.LastAccess
| NotifyFilters.LastWrite
| NotifyFilters.Security
| NotifyFilters.Size;
watcher.Changed += OnChanged;
watcher.Created += OnCreated;
watcher.Deleted += OnDeleted;
watcher.Renamed += OnRenamed;
watcher.Error += OnError;
watcher.Filter = "*.txt";
watcher.IncludeSubdirectories = true;
watcher.EnableRaisingEvents = true;
Console.WriteLine("Press enter to exit.");
Console.ReadLine();
}
private static void OnChanged(object sender, FileSystemEventArgs e)
{
if (e.ChangeType != WatcherChangeTypes.Changed)
{
return;
}
Console.WriteLine($"Changed: {e.FullPath}");
}
private static void OnCreated(object sender, FileSystemEventArgs e)
{
string value = $"Created: {e.FullPath}";
Console.WriteLine(value);
}
private static void OnDeleted(object sender, FileSystemEventArgs e) =>
Console.WriteLine($"Deleted: {e.FullPath}");
private static void OnRenamed(object sender, RenamedEventArgs e)
{
Console.WriteLine($"Renamed:");
Console.WriteLine($" Old: {e.OldFullPath}");
Console.WriteLine($" New: {e.FullPath}");
}
private static void OnError(object sender, ErrorEventArgs e) =>
PrintException(e.GetException());
private static void PrintException(Exception? ex)
{
if (ex != null)
{
Console.WriteLine($"Message: {ex.Message}");
Console.WriteLine("Stacktrace:");
Console.WriteLine(ex.StackTrace);
Console.WriteLine();
PrintException(ex.InnerException);
}
}
}
}
Imports System.IO
Namespace MyNamespace
Class MyClassVB
Shared Sub Main()
Using watcher = New FileSystemWatcher("C:\path\to\folder")
watcher.NotifyFilter = NotifyFilters.Attributes Or
NotifyFilters.CreationTime Or
NotifyFilters.DirectoryName Or
NotifyFilters.FileName Or
NotifyFilters.LastAccess Or
NotifyFilters.LastWrite Or
NotifyFilters.Security Or
NotifyFilters.Size
AddHandler watcher.Changed, AddressOf OnChanged
AddHandler watcher.Created, AddressOf OnCreated
AddHandler watcher.Deleted, AddressOf OnDeleted
AddHandler watcher.Renamed, AddressOf OnRenamed
AddHandler watcher.Error, AddressOf OnError
watcher.Filter = "*.txt"
watcher.IncludeSubdirectories = True
watcher.EnableRaisingEvents = True
Console.WriteLine("Press enter to exit.")
Console.ReadLine()
End Using
End Sub
Private Shared Sub OnChanged(sender As Object, e As FileSystemEventArgs)
If e.ChangeType <> WatcherChangeTypes.Changed Then
Return
End If
Console.WriteLine($"Changed: {e.FullPath}")
End Sub
Private Shared Sub OnCreated(sender As Object, e As FileSystemEventArgs)
Dim value As String = $"Created: {e.FullPath}"
Console.WriteLine(value)
End Sub
Private Shared Sub OnDeleted(sender As Object, e As FileSystemEventArgs)
Console.WriteLine($"Deleted: {e.FullPath}")
End Sub
Private Shared Sub OnRenamed(sender As Object, e As RenamedEventArgs)
Console.WriteLine($"Renamed:")
Console.WriteLine($" Old: {e.OldFullPath}")
Console.WriteLine($" New: {e.FullPath}")
End Sub
Private Shared Sub OnError(sender As Object, e As ErrorEventArgs)
PrintException(e.GetException())
End Sub
Private Shared Sub PrintException(ex As Exception)
If ex IsNot Nothing Then
Console.WriteLine($"Message: {ex.Message}")
Console.WriteLine("Stacktrace:")
Console.WriteLine(ex.StackTrace)
Console.WriteLine()
PrintException(ex.InnerException)
End If
End Sub
End Class
End Namespace
注解
不能查看没有 Windows NT 或 Windows 2000 的远程计算机。You cannot watch a remote computer that does not have Windows NT or Windows 2000. 不能从 Windows NT 4.0 计算机上观看远程 Windows NT 4.0 计算机。You cannot watch a remote Windows NT 4.0 computer from a Windows NT 4.0 computer.
下表显示了实例的初始属性值 FileSystemWatcher 。The following table shows initial property values for an instance of FileSystemWatcher.
| PropertyProperty | 初始值Initial Value |
|---|---|
| NotifyFilter | 、和的按位 "或" 组合 LastWrite FileName``DirectoryNamebitwise OR combination of LastWrite, FileName, and DirectoryName |
| EnableRaisingEvents | false |
| Filter | "*.*" (查看所有文件。 ) "*.*" (Watch all files.) |
| IncludeSubdirectories | false |
| InternalBufferSize | 81928192 |
| Path | 空字符串 ( "" ) empty string ("") |
备注
在设置后,组件将不会监视指定的目录 Path ,并且 EnableRaisingEvents 为 true 。The component will not watch the specified directory until the Path is set, and EnableRaisingEvents is true.
另请参阅
- NotifyFilters
- FileSystemEventArgs
- FileSystemEventHandler
- InternalBufferOverflowException
- Path
- RenamedEventArgs
- RenamedEventHandler
- WaitForChangedResult
- WatcherChangeTypes
适用于
FileSystemWatcher(String)
在给定要监视的指定目录的情况下,初始化 FileSystemWatcher 类的新实例。Initializes a new instance of the FileSystemWatcher class, given the specified directory to monitor.
public:
FileSystemWatcher(System::String ^ path);
public FileSystemWatcher (string path);
new System.IO.FileSystemWatcher : string -> System.IO.FileSystemWatcher
Public Sub New (path As String)
参数
- path
- String
要监视的目录,以标准表示法或通用命名约定 (UNC) 表示法表示。The directory to monitor, in standard or Universal Naming Convention (UNC) notation.
例外
path 参数为 null。The path parameter is null.
path 参数为空字符串 ("")。The path parameter is an empty string ("").
- 或 --or-
通过 path 参数指定的路径不存在。The path specified through the path parameter does not exist.
path 过长。path is too long.
注解
备注
在设置后,组件将不会监视指定的目录 Path ,并且 EnableRaisingEvents 为 true 。The component will not watch the specified directory until the Path is set, and EnableRaisingEvents is true.
组件可以查看个人计算机、网络驱动器或远程计算机上的文件。The component can watch files on your personal computer, a network drive, or a remote computer.
不能查看没有 Windows NT 或 Windows 2000 的远程计算机。You cannot watch a remote computer that does not have Windows NT or Windows 2000. 不能从 Windows NT 4.0 计算机上观看远程 Windows NT 4.0 计算机。You cannot watch a remote Windows NT 4.0 computer from a Windows NT 4.0 computer. Filter默认情况下,属性设置为监视所有文件。The Filter property is set by default to watch all files.
另请参阅
- NotifyFilters
- FileSystemEventArgs
- FileSystemEventHandler
- Filter
- InternalBufferOverflowException
- Path
- RenamedEventArgs
- RenamedEventHandler
- WaitForChangedResult
- WatcherChangeTypes
适用于
FileSystemWatcher(String, String)
在给定要监视的指定目录和文件类型的情况下,初始化 FileSystemWatcher 类的新实例。Initializes a new instance of the FileSystemWatcher class, given the specified directory and type of files to monitor.
public:
FileSystemWatcher(System::String ^ path, System::String ^ filter);
public FileSystemWatcher (string path, string filter);
new System.IO.FileSystemWatcher : string * string -> System.IO.FileSystemWatcher
Public Sub New (path As String, filter As String)
参数
- path
- String
要监视的目录,以标准表示法或通用命名约定 (UNC) 表示法表示。The directory to monitor, in standard or Universal Naming Convention (UNC) notation.
- filter
- String
要监视的文件的类型。The type of files to watch. 例如,“*.txt”监视所有文本文件的更改。For example, "*.txt" watches for changes to all text files.
例外
path 参数为 null。The path parameter is null.
- 或 --or-
filter 参数为 null。The filter parameter is null.
path 参数为空字符串 ("")。The path parameter is an empty string ("").
- 或 --or-
通过 path 参数指定的路径不存在。The path specified through the path parameter does not exist.
path 过长。path is too long.
注解
备注
在设置后,组件将不会监视指定的目录 Path ,并且 EnableRaisingEvents 为 true 。The component will not watch the specified directory until the Path is set, and EnableRaisingEvents is true.
组件可以查看个人计算机、网络驱动器或远程计算机上的文件。The component can watch files on your personal computer, a network drive, or a remote computer.
不能查看没有 Windows NT 或 Windows 2000 的远程计算机。You cannot watch a remote computer that does not have Windows NT or Windows 2000. 不能从 Windows NT 4.0 计算机上观看远程 Windows NT 4.0 计算机。You cannot watch a remote Windows NT 4.0 computer from a Windows NT 4.0 computer.
另请参阅
- NotifyFilters
- FileSystemEventArgs
- FileSystemEventHandler
- Filter
- InternalBufferOverflowException
- Path
- RenamedEventArgs
- RenamedEventHandler
- WaitForChangedResult
- WatcherChangeTypes