C#文件复制回滚
本文关键字:复制 文件 | 更新日期: 2023-09-27 18:20:01
当抛出异常时,有人知道如何在文件复制中实现回滚功能吗。
以下是我复制文件时的一些条件:
- 将文件复制到共享文件夹
- 文件不大于3MB
- 文件是一个图像文件(jpg、jpeg、bmp、gif、png)
- 已实施防止文件名重复
- 操作系统在Windows XP及更高版本中
- 代码位于Visual Studio 2010 Professional中的C#.Net 4.0上
- 网络连接为局域网
- 要复制多个文件,在引发异常时回滚
请帮忙。提前谢谢。
是。返回并删除所有文件。
根据你的结构,你可以做很多事情。例如,如果你有一个List<string>
,使用int
:迭代
for(int i = 0; i < filesToCopy.Count; i++) {
try {
// Copy the file
} catch(Exception ex) {
// Rollback
while(--i >= 0) {
System.IO.File.Delete(filesToCopy[i]); // For example
}
break;
}
}
您可以跟踪成功复制的文件,并在决定回滚时删除其中的每一个。但是,您是否认为您修改共享上文件的能力(包括在回滚期间删除文件)通常取决于网络连接?
换言之,如果异常是由于网络故障引起的,您将永远无法回滚——除非在您的控制下有另一个程序在另一端运行,您可以与之合作。