有人知道在抛出异常时如何在文件复制中实现回滚功能。
复制文件时有以下几种情况:
请帮忙。 提前谢谢。
答案 0 :(得分:2)
是。返回并删除所有文件。
根据您的结构,您可以做很多事情。例如,如果您有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;
}
}
答案 1 :(得分:0)
您可以跟踪成功复制的文件,并在您决定回滚时删除其中的每个文件。但是,您是否认为您在共享上修改文件的能力(包括在回滚期间删除它们)取决于网络连接?
换句话说,如果异常是由于网络发生故障,您将永远无法回滚 - 除非您控制的另一个程序在您控制下运行,您可以合作。