如题。
比如将C盘的DATA目录及子目录下的文件同步备份到D盘的BAK目录下,为了节约时间,在上次备份后未修改过的文件不要复制,上次备份后新增的文件要添加,上次备份后删除的文件同步删除
比如将C盘的DATA目录及子目录下的文件同步备份到D盘的BAK目录下,为了节约时间,在上次备份后未修改过的文件不要复制,上次备份后新增的文件要添加,上次备份后删除的文件同步删除
解决方案 »
- 帮忙看一下代码,急求!!!
- 千分散尽还复来,发贴必高分.........追终为什么..................................................100
- 请教一个关于keydown的问题
- C# 查找文件名的问题,在线等,请大家来看看
- 多线程的结束问题
- Visual Studio 2005 比2003生成的程序运行速度有没有差别?
- 紧急求助,如何分批的从一个大数据库中读出数据。
- 给我一个winfrom上应用Ado.net的例子,谢谢
- 关于窗口与窗口的消息(WinForm)
- 使用C#创建的DLL是否容易被反编译?
- iframe页面中的javascript如何调用父页面中的javascript
- axwebbrower 捕捉模态度窗口问题(帮顶散分)
但这要考虑不同文件系统的区别(FAT/FAT32/NTFS/...) 要做到代码可以应用到不同文件系统上可能要花点功夫
而我是想要做一个程序,添加到计划任务中,设置成比如每天晚上执行,在每次执行前检查一下文件夹里的变化情况
是啊,event知道吗,你也可以自己包装,添加event实现文件监视的功能 封装原来的DirectoryInfo类,添加事件,可以代替FileSystemWatcher 类
using System;
using System.IO;//封装原来的DirectoryInfo类,添加事件,可以代替FileSystemWatcher 类
public class DirectoryInfoNotify
{
public DirectoryInfoNotify(string path)
{
internalDirInfo = new DirectoryInfo(path);
}
private DirectoryInfo internalDirInfo = null;
public event EventHandler AfterCreate;
public event EventHandler AfterCreateSubDir;
public event EventHandler AfterDelete;
public event EventHandler AfterMoveTo;
protected virtual void OnAfterCreate()
{
EventHandler afterCreate = AfterCreate;
if (afterCreate != null)
{
afterCreate(this, new EventArgs());
}
} protected virtual void OnAfterCreateSubDir()
{
EventHandler afterCreateSubDir = AfterCreateSubDir;
if (afterCreateSubDir != null)
{
afterCreateSubDir(this, new EventArgs());
}
} protected virtual void OnAfterDelete()
{
EventHandler afterDelete = AfterDelete;
if (afterDelete != null)
{
afterDelete(this, new EventArgs());
}
} protected virtual void OnAfterMoveTo()
{
EventHandler afterMoveTo = AfterMoveTo;
if (afterMoveTo != null)
{
afterMoveTo(this, new EventArgs());
}
} // Event firing members
//激活事件的方法
public void Create()
{
internalDirInfo.Create();
OnAfterCreate();
} public DirectoryInfoNotify CreateSubdirectory(string path)
{
DirectoryInfo subDirInfo = internalDirInfo.CreateSubdirectory(path);
OnAfterCreateSubDir(); return (new DirectoryInfoNotify(subDirInfo.FullName));
} public void Delete(bool recursive)
{
internalDirInfo.Delete(recursive);
OnAfterDelete();
} public void Delete()
{
internalDirInfo.Delete();
OnAfterDelete();
} public void MoveTo(string destDirName)
{
internalDirInfo.MoveTo(destDirName);
OnAfterMoveTo();
} // Nonevent firing members
public string FullName
{
get { return (internalDirInfo.FullName); }
}
public string Name
{
get { return (internalDirInfo.Name); }
}
public DirectoryInfoNotify Parent
{
get { return (new DirectoryInfoNotify(internalDirInfo.Parent.FullName)); }
}
public DirectoryInfoNotify Root
{
get { return (new DirectoryInfoNotify(internalDirInfo.Root.FullName)); }
} public override string ToString()
{
return (internalDirInfo.ToString());
}
}
C#没有现成的东西。