如何监视某个目录,发现特定文件后就自动移动到其它目录中
如何监视某个目录,发现特定文件后就自动移动到其它目录中?用了filewatch后,可以监视到某个特定类型的文件,但是要用file.move去移动就报错。似乎不能直接用move来操作。
举个例子:
设置监控目录是:D:\A
监视的文件类型是*.txt文件
在该目录下如果发觉有txt文件就移动到D:\B目录下。
大侠告诉下具体如何实现的,谢谢啦 --------------------编程问答-------------------- 你使用System.IO.FileSystemWatcher 这个试试。我印象中是可以的。自己找找使用方法吧。
--------------------编程问答-------------------- 监视 用timer 定时去看文件夹里的列表.
移动:
public static void 查找和移动(String 原目录, string 目标目录, string 匹配符, string 过滤符)--------------------编程问答-------------------- 过滤符=*.txt --------------------编程问答-------------------- 定时 搜索 需要的文件啊 --------------------编程问答--------------------
{
if (匹配符.Trim() == "")
{
匹配符 = "*";
}
if (过滤符.Trim() == "")
{
过滤符 = "*";
}
var files = from file in Directory.EnumerateFiles(@原目录,
匹配符, SearchOption.AllDirectories)
select file;
foreach (var f in files)
{
String g = Path.GetFileName(f);
if (!g.Contains(过滤符))
{
File.Copy(f, @目标目录 + g, true);
}
}
}
private void FileMonitor_Changed(object sender, System.IO.FileSystemEventArgs e)
{
string ChangeType = e.ChangeType.ToString();
//display a message box for the appropriate changetype.
if (ChangeType=="Created")
{
//MessageBox.Show("File: " + e.FullPath + " " + e.ChangeType, e.Name+" Created");
}
else if(ChangeType=="Deleted")
{
//MessageBox.Show("File: " + e.FullPath + " " + e.ChangeType, e.Name+" Deleted");
}
else if(ChangeType=="Changed")
{
//MessageBox.Show("File: " + e.FullPath + " " + e.ChangeType, e.Name+" Changed");
File.Move (e.FullPath, "D:\\B");
}
}
大家看看,当有文件放入D:\B目录后,会出发该事件,但是在运行File.Move (e.FullPath, "D:\\B");后程序就会报调用的目标发生了异常。
--------------------编程问答-------------------- 第二个参数是文件名,可不是目录!
补充:.NET技术 , C#