监听文件夹
Posted linxmouse
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监听文件夹相关的知识,希望对你有一定的参考价值。
目的
由于一些需求, 需要对关心的文件夹下面的文件做时时的监视包括改名、新增、删除、修改等, 因为文件夹文件数目不少每次重新扫描整个文件将非常的浪费时间.
方案
使用FileSystemWatcher来监听这些感兴趣的变动
示例代码
using System;
using System.IO;
namespace FileSystemWatcherDemo
{
class Program
{
static void Main(string[] args)
{
FileSystemWatcher fsw = new FileSystemWatcher();
fsw.Path = @"./";
// 不支持使用多个筛选器
// *.* 所有文件(默认值 空字符串("")还会监视所有文件
// *.txt 扩展名为 "txt" 的所有文件
// *recipe.doc 所有以 "食谱" 结尾且扩展名为 "doc" 的文件
// win*.xml 所有以 "win" 开头且扩展名为 "xml" 的文件
// ? 任意单字符匹配
fsw.Filter = "*app*.json";
fsw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName |
NotifyFilters.DirectoryName;
fsw.Changed += new FileSystemEventHandler(OnChanged);
fsw.Created += new FileSystemEventHandler(OnCreated);
fsw.Deleted += new FileSystemEventHandler(OnDeleted);
fsw.Renamed += new RenamedEventHandler(OnRenamed);
fsw.EnableRaisingEvents = true;
Console.WriteLine("Press ‘q‘ to quit the sample.");
while (Console.Read() != ‘q‘) ;
}
private static void OnRenamed(object sender, RenamedEventArgs e)
{
Console.WriteLine($"File Name From {e.OldFullPath} To {e.FullPath}.");
}
private static void OnDeleted(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"File {e.FullPath} Removed.");
}
private static void OnCreated(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"New File {e.FullPath} Created.");
}
private static void OnChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine($"File {e.FullPath} Changed.");
}
}
}
示例输出
Press ‘q‘ to quit the sample.
File Name From ./New.docx To ./New-app-.json.
File Name From ./新建 Text Document.txt To ./新建 app Text Document.json.
File Name From ./新建 Text Document.txt To ./新建 App 2.json.
File ./New-app-.json Changed.
File ./New-app-.json Changed.
File Name From ./新建 App 2.json To ./App 2.json.
New File ./新建 app Text Document - 副本.json Created.
File ./新建 app Text Document - 副本.json Changed.
New File ./App 2 - 副本.json Created.
File ./App 2 - 副本.json Changed.
File ./App 2 - 副本.json Removed.
File ./App 2.json Removed.
File ./New-app-.json Removed.
File ./新建 app Text Document - 副本.json Removed.
File ./新建 app Text Document.json Removed.
以上是关于监听文件夹的主要内容,如果未能解决你的问题,请参考以下文章
如何在android中去listview适配器项目点击监听器片段?
ngx-translate实现国际化:this.translate.use()this.translate.get()this.translate.instant()onLangChange(代码片段