static FileSystemWatcher watcher = new FileSystemWatcher();
/// <summary>       
/// 初始化监听       
/// </summary>       
/// <param name="StrWarcherPath">需要监听的目录</param>       
/// <param name="FilterType">需要监听的文件类型(筛选器字符串)</param>       
/// <param name="IsEnableRaising">是否启用监听</param>       
/// <param name="IsInclude">是否监听子目录</param>        
private static void WatcherStrat(string StrWarcherPath, string FilterType, bool IsEnableRaising, bool IsInclude)
{
//初始化监听           
watcher.BeginInit();
//设置监听文件类型           
watcher.Filter = FilterType;
//设置是否监听子目录           
watcher.IncludeSubdirectories = IsInclude;
//设置是否启用监听?           
watcher.EnableRaisingEvents = IsEnableRaising;
//设置需要监听的更改类型(如:文件或者文件夹的属性,文件或者文件夹的创建时间;NotifyFilters枚举的内容)          
watcher.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size;
//设置监听的路径           
watcher.Path = StrWarcherPath;
//注册创建文件或目录时的监听事件           
watcher.Created += new FileSystemEventHandler(watch_created);
//注册当指定目录的文件或者目录发生改变的时候的监听事件  
watcher.Changed += new FileSystemEventHandler(watch_changed);
//注册当删除目录的文件或者目录的时候的监听事件           
watcher.Deleted += new FileSystemEventHandler(watch_deleted);
//当指定目录的文件或者目录发生重命名的时候的监听事件           
watcher.Renamed += new RenamedEventHandler(watch_renamed);
//结束初始化           
watcher.EndInit();
} /// <summary>       
/// 创建文件或者目录时的监听事件      
/// </summary>      
/// <param name="sender"></param>       
/// <param name="e"></param>       
private static void watch_created(object sender, FileSystemEventArgs e)
{
//事件内容
string fileName = e.FullPath;
if (!System.IO.Path.GetExtension(fileName).Equals(".mp3", StringComparison.CurrentCultureIgnoreCase))
{
string targetFileName = e.FullPath.Substring(0, e.FullPath.LastIndexOf(".")) + ".mp3";
WavConvertAmr.ConvertToMP3 toamr = new WavConvertAmr.ConvertToMP3();
toamr.ConvertToAmr(System.Windows.Forms.Application.StartupPath, fileName, targetFileName);
}
}
/// <summary>       
/// 当指定目录的文件或者目录发生改变的时候的监听事件      
/// </summary>       
/// <param name="sender"></param>       
/// <param name="e"></param>       
private static void watch_changed(object sender, FileSystemEventArgs e)
{
//事件内容    
//MessageBox.Show("发生改变");
}
/// <summary>       
/// 当删除目录的文件或者目录的时候的监听事件       
/// </summary>       
/// <param name="sender"></param>             
/// <param name="e"></param>      
private static void watch_deleted(object sender, FileSystemEventArgs e)
{
//事件内容
}
/// <summary>       
/// 当指定目录的文件或者目录发生重命名的时候的事件      
/// </summary>      
/// <param name="sender"></param>       
/// <param name="e"></param>       
private static void watch_renamed(object sender, RenamedEventArgs e)
{
//事件内容      
}

  

c# 监听文件夹动作的更多相关文章

  1. 使用Node.JS监听文件夹变化

    使用Node.JS监听文件夹改变有许多应用场合,比如: 构建自动编绎工具 当源文件改变时,自动运行build过程,比如当你写CoffeeScript文件或SASS CSS文件时,保存之后可即时生成对应 ...

  2. nodejs 监听文件夹变化的模块

    使用Node.JS监听文件夹变化 fs.watch 其中Node.JS的文件系统也可侦听某个目录的改变, 如fs.watch   其中fs.watch的最大缺点就是不支持子文件夹的侦听,并且在很多情况 ...

  3. Java_监听文件夹或者文件是否有变动

    package org.testWatch.Watch; import java.nio.file.FileSystems; import java.nio.file.Path; import jav ...

  4. kafka flumn sparkstreaming java实现监听文件夹内容保存到Phoenix中

    ps:具体Kafka Flumn SparkStreaming的使用  参考前几篇博客 2.4.6.4.1 配置启动Kafka (1) 在slave机器上配置broker 1) 点击CDH上的kafk ...

  5. inotify监听文件夹的变动

    inotify只能监控单层目录变化,不能监控子目录中的变化情况.如果需要监控子目录,需要在调用inotify_add_watch(int fd, char *dir, int mask):int建立监 ...

  6. Java_监听器监听文件夹变动

    package demo4; import java.io.IOException;import java.nio.file.FileSystems;import java.nio.file.Path ...

  7. java 监听文件或文件夹变化

    今天遇到一个新需求,当从服务器下载文件后用指定的本地程序打开,不知道何时文件下载完成,只能考虑监听文件夹,当有新文件创建的时候打开指定程序. 在此给出一个完整的下载和打开过程: 1.下载文件 jsp页 ...

  8. 如何使用NodeJs来监听文件变化

    1.前言 在我们调试修改代码的时候,每修改一次代码,哪怕只是很小的修改,我们都需要手动重新build文件,然后再运行代码,看修改的效果,这样的效率特别低,对于开发者来说简直不能忍. 2.构建自动编译工 ...

  9. Java NIO.2 使用Path接口来监听文件、文件夹变化

    Java7对NIO进行了大的改进,新增了许多功能: 对文件系统的访问提供了全面的支持 提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的Ja ...

随机推荐

  1. HTML 学习笔记 CSS样式(框模型)

    CSS框模型( Box Model)规定了元素框处理元素的内容 内边距 边框 和 外边距的方式 CSS框模型概述 可以用下面的模型图概述

  2. 解决jquery.validate.js的验证bug

    版本提示:jq为1.4.4, jquery.validate 为jQuery validation plug-in 1.7 问题: a.选填选项,如邮箱设置格式验证,那么情况输入框,验证label变成 ...

  3. VS2013 抛出 stackoverflow exception 的追踪

    本公司使用VWG.Caslte ActiveRecord.CSLA.net .Quantz.net 等组件做为公司的开发基础,自2007年以来,一直工作正常,但最近(2015.12月)以来,打开MDA ...

  4. Jboss EAP:native management API学习

    上一节已经学习了CLI命令行来控制JBOSS,如果想在程序中以编码方式来控制JBOSS,可以参考下面的代码,实际上在前面的文章,用代码控制Jboss上的DataSource,已经有所接触了,API与C ...

  5. python 图

    class Graph(object): def __init__(self,*args,**kwargs): self.node_neighbors = {} self.visited = {} d ...

  6. ReactNative运行提示缺少文件xxxRootView.h解决方法

    我们经常在github获取源码后运行会出现缺少 "RCTRootView.h" notfound" 文件的错误,对于这种错误我们怎么解决了. 1.cd到项目根目录 删除项 ...

  7. WP8.1中C++的winodws运行时组件位移操作的差异

    最近学习WP8.1应用开发,想把C语言的SM3国密算法移植到手机app中.由于把C语言的代码转换成C#代码工作量较大,因此只能用winodws运行时组件来实现. SM3国密算法是一种HASH算法,具体 ...

  8. C#微信公众号开发系列教程五(接收事件推送与消息排重)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  9. versionCompare 版本号比较工具

    简介 需求非常简单,需要比较软件或app的版本号,判断大小,形如 0.10.2形式的版本号字符串.实现逻辑是按照点(.)分割字符串,然后逐级比较版本大小.不存在的按0处理,空字符串小于非空字符串. 测 ...

  10. HTML5+JS 《五子飞》游戏实现(二)路线分析和资源准备

    上一节 里沃特与我们分享了<五子飞>的下棋规则,可能有些伙伴看得不清楚,像我们码农还是看到代码比较靠谱.下面就把可以走棋的路线跟大家说一下. 假设从左上角开始,以0开始编号,往右数(没看第 ...