一个问题(大致是关于监听目录),不知如何下手,敬请各位提点建设性的意见,秀秀你们的功力,不胜感激!
要求如下:
任意指定一个目录,使其成为一个特殊的目录,使move或者paste到该目录下的文件或者目录是自动修改过的。比如说拖一个文件到该目录,拖过来的不是文件的原样copy,而是经过我们写的程序处理过的结果文件。
不知如何下手,请各位支招,谢谢了
------解决方案--------------------先取指定目录下的文件名,保存。然后监视该目录,文件名列表有变更时把新增加的文件提取出来处理。
是否可行?
------解决方案--------------------FileSystemWatcher
------解决方案--------------------是不是全局Hook的内容了,你找一下这方面的东西.
------解决方案--------------------windows有一个API可以做到监视文件夹的变化的,不过我没用过,只能帮你UP了
------解决方案--------------------学习
------解决方案--------------------帮顶
------解决方案--------------------用.net自带的FileSystemWatcher组件来监听文件夹
但要做到自动更改文件,可能还得写些更底层的操作吧!
------解决方案--------------------监控文件夹 改变FileSystemWatcher 可以做到
不过 中途修改 内容 可能需要获取 剪切板里的内容吧
取到里面的文件源 然后你去读取文件源 修改后再写入进去.
------解决方案--------------------using System;
using System.IO;
using System.Data;
namespace fileWatch
{
/// <summary>
/// FileWatcher 的摘要说明。
/// </summary>
public class FileWatcher
{
FileSystemWatcher watcher ;
string watchPath;
public FileWatcher(string fileFrom)
{
watchPath=fileFrom; // the watch path
}
private void OnCreated(object source, FileSystemEventArgs e)
{
// the file e.FullPath which to change
// do what you want
}
public void start()
{
watcher= new FileSystemWatcher();
watcher.Path=watchPath;
watcher.NotifyFilter=NotifyFilters.LastWrite|NotifyFilters.LastAccess;
watcher.Changed += new FileSystemEventHandler(OnCreated);
watcher.EnableRaisingEvents=true;
}
public void stop()
{
watcher.EnableRaisingEvents=false;
watcher.Dispose();
}
}
}
//这样简单写写 就恩能够捕捉到在start后 目录内文件的修改,包括新增加文件(有些特殊文件似乎捕捉不到)
//我能想到的最直接办法就是文件移动后 修改这个文件(OnCreated方法中),而不是修改后在移动这个文件
//希望有帮助
------解决方案--------------------FileSystemWatcher
------解决方案--------------------http://chs.gotdotnet.com/quickstart/howto/doc/watcher.aspx
检测到新文件之后,,将他们改写一下吧
------解决方案--------------------学习中....
------解决方案--------------------你牛,,,host了系统消息
------解决方案--------------------移动或者粘贴命令应该是有WINDOWS消息的把,能不能截取到消息,
做个程序实时监听WINDOWS消息,遇到移动或者粘贴命令修改剪贴板内容.
我不懂,不知可不可以,不对大家别笑我.
------解决方案--------------------MARK
------解决方案--------------------同是星星,只能帮你up了。
------解决方案--------------------必须hook系统MSG,然后判断路径是否是你要监听的路径,再去处理
------解决方案--------------------FileSystemWatcher
如果你要更高级的功能
写驱动过滤Filter
------解决方案--------------------