EnhancedFileSystemWatcher 1.0.0
.NET Standard 1.3 此包针对 .NET Standard 1.3。该包与此框架兼容或更高。 .NET Framework 2.0 此包针对 .NET Framework 2.0。该包与此框架兼容或更高。
dotnet add package EnhancedFileSystemWatcher --version 1.0.0
NuGet\Install-Package EnhancedFileSystemWatcher -Version 1.0.0
该命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="EnhancedFileSystemWatcher" Version="1.0.0" />
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以便引用包。
paket add EnhancedFileSystemWatcher --version 1.0.0
NuGet 团队不为此客户端提供支持。请联系其 维护者 以获得支持。
#r "nuget: EnhancedFileSystemWatcher, 1.0.0"
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此复制到交互式工具或脚本的源代码中,以引用包。
// Install EnhancedFileSystemWatcher as a Cake Addin #addin nuget:?package=EnhancedFileSystemWatcher&version=1.0.0 // Install EnhancedFileSystemWatcher as a Cake Tool #tool nuget:?package=EnhancedFileSystemWatcher&version=1.0.0
NuGet 团队不为此客户端提供支持。请联系其 维护者 以获得支持。
System.IO.EnhancedFileSystemWatcher
一个增强型文件系统监视器,可用于抑制对文件的单次更改引发的重复事件。
本项目基于 Enhanced-FileSystemWatcher,由 Vipul Prashar 编写。
NuGet
框架
以下框架得到支持
- net 2.0
- net 4.5 及以上
- netstandard 1.3
- netstandard 2.0
信息
简介
本文讨论了一种增强型 FileSystemWatcher 类,用于抑制对文件的单次更改引发的重复事件。
背景
System.IO.FileSystemWatcher 类帮助用户监视目录以及目录中的多个或单个文件。每当检测到更改(创建、修改、删除或重命名),便会引发一个相应的事件。然而,是否会发生重复事件取决于修改文件时使用的软件。
观察
使用记事本修改文件内容会产生2个“更改”事件。使用Textpad进行相同的操作会产生4个“更改”事件。
使用Textpad在监视目录中创建文件会导致触发1个“创建”事件和3个“更改”事件。在记事本的情况下,观察到“创建”后跟“删除!!”,然后是“创建”和3个“更改”事件。
建议的解决方案
我们需要跟踪事件并抑制在一定时间间隔内发生的事件。
示例
class Program
{
static void Main(string[] args)
{
var fsw = new EnhancedFileSystemWatcher(@"C:\temp", "*.txt");
fsw.Created += fsw_Created;
fsw.Changed += fsw_Changed;
fsw.Deleted += fsw_Deleted;
fsw.Renamed += fsw_Renamed;
fsw.EnableRaisingEvents = true;
Console.ReadLine();
}
static void fsw_Renamed(object sender, RenamedEventArgs e)
{
Console.WriteLine("Renamed: FileName - {0}, ChangeType - {1}, Old FileName - {2}", e.Name, e.ChangeType, e.OldName);
}
static void fsw_Deleted(object sender, FileSystemEventArgs e)
{
Console.WriteLine("Deleted: FileName - {0}, ChangeType - {1}", e.Name, e.ChangeType);
}
static void fsw_Changed(object sender, FileSystemEventArgs e)
{
Console.WriteLine("Changed: FileName - {0}, ChangeType - {1}", e.Name, e.ChangeType);
}
static void fsw_Created(object sender, FileSystemEventArgs e)
{
Console.WriteLine("Created: FileName - {0}, ChangeType - {1}", e.Name, e.ChangeType);
}
}
产品 | 版本 兼容及其它自动计算的靶场版本。 |
---|---|
.NET | net5.0已被计算。 net5.0-windows已被计算。 net6.0已被计算。 net6.0-android已被计算。 net6.0-ios已被计算。 net6.0-maccatalyst已被计算。 net6.0-macos已被计算。 net6.0-tvos已被计算。 net6.0-windows已被计算。 net7.0已被计算。 net7.0-android已被计算。 net7.0-ios已被计算。 net7.0-maccatalyst已被计算。 net7.0-macos已被计算。 net7.0-tvos已被计算。 net7.0-windows已被计算。 net8.0已被计算。 net8.0-android已被计算。 net8.0-browser已被计算。 net8.0-ios已被计算。 net8.0-maccatalyst已被计算。 net8.0-macos已被计算。 net8.0-tvos已被计算。 net8.0-windows已被计算。 |
.NET Core | netcoreapp1.0 已计算。 netcoreapp1.1 已计算。 netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET Standard | netstandard1.3 兼容。 netstandard1.4 已计算。 netstandard1.5 已计算。 netstandard1.6 已计算。 netstandard2.0 兼容。 netstandard2.1 已计算。 |
.NET Framework | net20 兼容。 net35 已计算。 net40 已计算。 net403 已计算。 net45 兼容。 net451 已计算。 net452 已计算。 net46 已计算。 net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen30 已计算。 tizen40 已计算。 tizen60 已计算。 |
通用Windows平台 | uap 已计算。 uap10.0 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETFramework 2.0
- NetLegacySupport.ConcurrentDictionary (>= 1.1.1)
-
.NETFramework 4.5
- 无依赖。
-
.NETStandard 1.3
- NETStandard.Library (>= 1.6.1)
- System.IO.FileSystem.Watcher (>= 4.3.0)
-
.NETStandard 2.0
- 无依赖。
NuGet 包
此包不受任何 NuGet 包使用。
GitHub 仓库
此包不受任何流行 GitHub 仓库使用。
版本 | 下载 | 最后更新 |
---|---|---|
1.0.0 | 1,805 | 2/3/2018 |