当前位置:编程学习 > C#/ASP.NET >>

如何监视某个目录,发现特定文件后就自动移动到其它目录中

如何监视某个目录,发现特定文件后就自动移动到其它目录中?

用了filewatch后,可以监视到某个特定类型的文件,但是要用file.move去移动就报错。似乎不能直接用move来操作。

举个例子:

设置监控目录是:D:\A

监视的文件类型是*.txt文件

在该目录下如果发觉有txt文件就移动到D:\B目录下。

大侠告诉下具体如何实现的,谢谢啦 --------------------编程问答-------------------- 你使用System.IO.FileSystemWatcher 这个试试。我印象中是可以的。自己找找使用方法吧。

--------------------编程问答-------------------- 监视 用timer 定时去看文件夹里的列表.
移动:
 public static void 查找和移动(String 原目录, string 目标目录, string 匹配符, string 过滤符)
        {
            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);
                }
            }
        }
--------------------编程问答-------------------- 过滤符=*.txt --------------------编程问答-------------------- 定时 搜索 需要的文件啊 --------------------编程问答--------------------
引用 1 楼 shashengduguzhe 的回复:
你使用System.IO.FileSystemWatcher 这个试试。我印象中是可以的。自己找找使用方法吧。


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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,