我的程序需要将一些文件操作视为一个单元,一个案例中的一些重要步骤是:
- 删除目录中的文件。
- 验证一些数据。如果数据无效,则回滚。
- 将文件上传到目录。如果上传失败,则回滚。
- 提交更改。
我提出这个关于交易的要求是因为有时用户可能使用 VPN 访问我的网站,VPN 连接可能非常不稳定。
如果第 3 步失败,第 1 个文件和新上传的文件都将丢失。
我的一些代码:
DeleteTheOlderDT(path, FileName);
this.fuTemplateName.SaveAs(path + FileName);
_t.FileName = FileName;
if (!System.IO.File.Exists(path + FileName))
{
ArrayList ItemList = new ArrayList();
ItemList.Add("Uploading failed, please upload again!");
btlError.DataSource = ItemList;
btlError.DataBind();
_t.FileName = "";
return;
}