监控文件夹测试程序:

 using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace FileSystemWatcherTest
{
class Program
{
static void Main(string[] args)
{
FileSystemWatcher watcher = new FileSystemWatcher("C:\\FileSystemWatcher", "*.txt");
watcher.NotifyFilter = NotifyFilters.FileName;
watcher.Created += new FileSystemEventHandler(FileCreated);
watcher.EnableRaisingEvents = true; Console.ReadLine();
} private static void FileCreated(object sender, FileSystemEventArgs e)
{
if (!File.Exists(e.FullPath))
{
return;
}
Console.WriteLine("Created: {0: HH:mm:ss}", DateTime.Now); while (!IsFileReady(e.FullPath))
{
Console.WriteLine("Used: {0: HH:mm:ss}", DateTime.Now);
}
//在这里进行文件处理。。。
Console.WriteLine("Ready: {0: HH:mm:ss}", DateTime.Now); Thread.Sleep( * );
FileInfo fs = new FileInfo(e.FullPath); var moveToPath = @"\\testServer\Shares\" + fs.Name;
fs.MoveTo(moveToPath); if (!File.Exists(moveToPath))
{
Console.WriteLine("Move Faild: {0: HH:mm:ss}", DateTime.Now);
}
Console.WriteLine("Move Success: {0: HH:mm:ss}", DateTime.Now);
} static bool IsFileReady(string filename)
{
FileInfo fi = new FileInfo(filename);
FileStream fs = null;
try
{
fs = fi.Open(FileMode.Open, FileAccess.ReadWrite,FileShare.None);
return true;
} catch (IOException)
{
return false;
} finally
{
if (fs != null)
fs.Close();
}
}
}
}

文件生成测试程序:

 using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace GenerateFileTest
{
class Program
{
static void Main(string[] args)
{
FileStream fs = new FileStream("C:\\FileSystemWatcher\\Test.txt", FileMode.Create);
StreamWriter sw = new StreamWriter(fs); var currDateTime = DateTime.Now;
var maxDateTime = currDateTime.AddSeconds(); Console.WriteLine("Log begin: {0}", DateTime.Now.ToString("HH:mm:ss"));
while (currDateTime < maxDateTime)
{
sw.WriteLine(DateTime.Now.ToString());
currDateTime = DateTime.Now;
} //清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close(); Console.WriteLine("Log end: {0}", DateTime.Now.ToString("HH:mm:ss"));
Console.ReadLine();
}
}
}

运行结果:

 

【.Net 学习系列】-- FileSystemWatcher 监控文件夹新生成文件,并在确认文件没有被其他程序占用后将其移动到指定文件夹的更多相关文章

  1. VS调试提示“无法启动程序,“...exe”。系统找不到指定文件

    当VS调试提示上图所示的警告时,常用的方法是检查“项目”-“属性”-“配置属性”-“常规”-“输出目录”里的路径 项目”-“属性”-“配置属性”-“链接器”-“常规”-“输出文件”里的路径,是否一致, ...

  2. vs 2013 Express 无法启动程序xxx.exe,系统找不到指定文件

    由于实验室有人用了含病毒的软件,网管把实验室出口给封了,周末人家又不上班.看样子树莓派是玩不成了,所以昨天在宿舍写windows程序,最基本的窗口程序,听说这段代码初学者至少要自己敲5遍以上.代码如下 ...

  3. Caffe学习系列(9):运行caffe自带的两个简单例子

    为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载.但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了. 注意: ...

  4. matlab操作之--读取指定文件夹下的“指定格式”文件

    %% 正负样本所在folder fext='*.png';%要读取的文件格式 positiveFolder='F:\课题\Crater detection\machingLearning\Positi ...

  5. 转 Caffe学习系列(9):运行caffe自带的两个简单例子

    为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载.但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了. 注意: ...

  6. Java 遍历指定文件夹及子文件夹下的文件

    Java 遍历指定文件夹及子文件夹下的文件 /** * 遍历指定文件夹及子文件夹下的文件 * * @author testcs_dn * @date 2014年12月12日下午2:33:49 * @p ...

  7. 使用FileSystemWatcher监控文件夹及文件

    引言 这一周主要精力集中学习一个同事开发的本地文件搜索项目上,其中客户端添加共享文件时主要是使用FileSystemWatcher 监控文件,并在各种事件发生时向服务器发送消息. 解决方法 FileS ...

  8. [转]C# FileSystemWatcher监控指定文件或目录的文件的创建、删除、改动、重命名等活动

    觉得这个很常用..比如一些软件.   http://www.rabbit8.cn/DoNet/407.html   FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删 ...

  9. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

随机推荐

  1. 聊5块钱P2V

    上一秒还在写代码,下一秒就跑机房干活. 这台机器产制石器时代,重启一次后再就启动不了了.这个故障处理的方式我们以后再谈. 今天聊聊啥是P2V,国人总喜欢弄些稀奇古怪的定义来证明自己技术很牛X,就跟当年 ...

  2. iOS programming UITableView and UITableViewController

    iOS programming  UITableView and UITableViewController A UITableView displays a single column of dat ...

  3. phpmyadmin在linux下通过sock安装教程

    当初是按照 http://www.cnblogs.com/freeweb/p/5262852.html 地址参考安装,因为疏忽,未考虑到版本差异带来的影响(自身安装的是最新版 phpMyAdmin-4 ...

  4. html中 accept 属性

    1.HTML <input> 标签的 accept 属性 在文件上传中使用 accept 属性,本例中的输入字段可以接受 GIF 和 JPEG 两种图像: <form> < ...

  5. VS2015 update3 安装 asp.net core 失败

    CMD 命令下执行: C:\DotNetCore\DotNetCore.1.0.0-VS2015Tools.Preview2.exe SKIP_VSU_CHECK=1

  6. 循环和递归的区别(以前以为递归就是for循环!错的!)

    这里直接上代码!!!! //代码1:(for循环实现的代码) void main() { ; ; i<;i++) { n++; } printf("%d",n); } //代 ...

  7. struts2 使用json

    前台代码: Struts.xml: UserAction: 注意: 1)struts类库里面没有提供ezmorph-1.0.6.jar文件,所以要手动添加:

  8. python 深复制和浅复制

    https://www.python-course.eu/python3_deep_copy.php-------------------------------------------------- ...

  9. 题解 洛谷P1903/BZOJ2120【[国家集训队]数颜色 / 维护队列】

    对于不会树套树.主席树的本蒟蒻,还是老老实实的用莫队做吧.... 其实这题跟普通莫队差不了多远,无非就是有了一个时间,当我们按正常流程排完序后,按照基本的莫队来,做莫队时每次循环对于这一次操作,我们在 ...

  10. 使用TensorRT加速yolo3

    一.TensorRT支持的模型: TensorRT 直接支持的model有ONNX.Caffe.TensorFlow,其他常见model建议先转化成ONNX.总结如下: 1 ONNX(.onnx) 2 ...