c#实现调用XCopy命令实现目录备份的应用代码实例
博客随笔
C#XCopy命令文件夹备份实时同步备目录备份
元旦前接了一单小私活,之所以找到我大概是因为是 TK精灵-进程守护工具 的用户,觉得体验还不错就找到了我这边希望定制一款文件夹备份小工具.
用户需求大概描述
- 核心需求A、B两个目录 监听A的所有文件内容变动备份至B目录
- 界面做好看点,集成多个备份任务(原本用的是运行多个bat脚本执行xcpoy进行备份)
- 界面需要输出运行日志 以及失败的日志记录 便于后续排查
原本听完需求觉得功能挺简单的,元旦放完假后就开始开发,很快就做出了雏形功能,功能实现的也比较简单,就是简单的目录遍历 然后加一个目录监听。自我测试感觉还挺不错的,于是就交给用户试用,然而用户反馈软件使用却不太理想,比原先使用的xcpoy方式要慢非常多,中间还电话沟通了几次需求,沟通过程总体给人感觉还是很舒适的,理解万岁。
做了很多次备份效率测试,最终结果都是.net 提供的目录遍历 进行大批量(大概有200多GB的数据量)进行复制备份的效率始终比xcopy方式差非常多,最终还是使用了c#调用cmd执行xcpoy的方式进行被反然后读取返回结果输出到前端日志界面。
以下是实现c#调用xcopy备份目录的核心代码
Process XCopyProcess;
string xcopy = $"xcopy \"{this.sourcePath}\" \"{this.outputPath}\" /c/e/I/d/h/r/y";
ProcessStartInfo processStartInfo = new ProcessStartInfo()
{