C# FileSystemWatcher 监视磁盘文件变更(原创)

简化需求:有一个简化了的需求是这样的:有一个拍照程序在运行,一旦抓拍之后则将图片文件存储至某目录,然后图片要上传至远程服务器并update数据库。

原需求:原先的需求是这样的:有一台PDA扫码枪,一个IP照相机放置在下线区传送带上方。当PDA扫描箱子上的条码,触发相机拍照,将图片流传至远端服务器,找到对应的条码,将图片存储并更新数据库。

 

然而我不知道PDA扫描的瞬间如何与IP相机通信(蓝牙或WLAN?),其实关键是我不知道怎样使用IP相机的外触发功能,增加蓝牙触发器?也不知道怎样hack或ssh到这个相机(应该是linux的吧),所以只能先使用简化需求的版本。

 

而简化需求的版本,关键就是监视文件夹内容变化与上传文件流。

昨天问了下度娘,C#中的监视组件名字叫做FileSystemWatcher。

于是写了个demo,可以监视所有逻辑盘或者某个文件夹。

使用方法:

1.直接打开是监视所有逻辑磁盘文件变化。

不带参数监视所有逻辑磁盘文件变更输出截图
不带参数监视所有逻辑磁盘文件变更输出截图

2.或者传递参数,监视某一路径文件变化。如图,监视e盘

带参数1监视某一路径的文件变更截图
带参数1监视某一路径的文件变更截图

源代码:

 

仍有bug,望高手指正。

附上编译好的exe,可以直接运行。

文章最初发表于博客园:http://www.cnblogs.com/LisonLiou/p/filesystemwatcher.html

Apache反向代理Discuz地址有问题的解决方法

有机器A,机器B;

机器A拥有外网ip,机器B处于内网。

机器A运行apache,本地程序,开放80端口,并且作为代理服务器处理外部泛解析域名,例如bbs.lison.com。并且解析到机器B的端口8090。

机器B运行nginx,处理8090端口的web服务。

部署成功后,出现的问题是:访问bbs.lison.com之后,页面能打开,但是样式无法加载,查看源代码发现<base href=”http://机器B:8090″ />,依然是机器B的内网地址端口号。

这个问题困扰了我好几天,直到今天看到大神的文章:

Apache反向代理Discuz出现“您的请求来路不正确”解决办法

http://rayyn.net/2010/06/37.html