有誰知道如何在引發異常時在文件複製中實現回滾函數。C#文件複製退回
這裏有一些條件,當我將文件複製:
- 將文件複製到共享文件夾
- 文件不超過3MB
- 文件是圖像文件(JPG,JPEG,BMP ,GIF,PNG)
- 預防文件名重複的已實現
- OS是Windows XP及更高
- 代碼是C#.net 4.0 V中isual Studio 2010的專業
- 網絡連接局域網
- 多個文件進行復制,回滾時,拋出一個異常
請幫助。 在此先感謝。
有誰知道如何在引發異常時在文件複製中實現回滾函數。C#文件複製退回
這裏有一些條件,當我將文件複製:
請幫助。 在此先感謝。
是的。回去並刪除所有文件。
根據你的結構,你可以做很多事情。如果你有一個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;
}
}
您可以跟蹤成功複製文件並刪除它們中的每一個,當你決定回滾。但是,您是否認爲通常修改共享上的文件(包括在回滾期間刪除它們)的能力取決於網絡連接?
換句話說,如果異常是由於網絡故障導致的,那麼您將永遠無法回滾 - 除非另一方控制着另一個可以與之配合的程序。
如果存在網絡問題,系統將不會運行。我會嘗試你的建議。感謝你的回答。 – 2012-01-11 02:39:10
@JohnIsaiahCarmona:那麼系統可以預測,網絡將在未來停止並拒絕啓動? ;-) – Jon 2012-01-11 02:45:37
難道你只是試圖刪除文件做回滾。您可以使用try catch語句來捕獲錯誤。 – Dessus 2012-01-11 02:25:05
如果不顯示一些代碼,恐怕你不會得到很多幫助。你是說你想刪除所有複製的第一個文件,如果一個副本失敗? – 2012-01-11 02:26:09