2013-04-03 26 views
0

我有一個循環,使用FileStream將數據寫入文件。 在手術過程中,我想中止手術。 如果我刷新並關閉它,我將在磁盤上有一個部分文件。有沒有辦法關閉FileStream並將其從系統中刪除? (在相同的動作。我知道我可以只刷新關閉,不是刪除它自己)正常中止FileStream寫入循環

+2

那麼,不要打擾沖洗。是的,只需刪除該文件即可。 –

回答

0

如果你需要處理的修改文件...

可能是矯枉過正,你的情況,但你可以使用NTFS transactions。如果您需要中止,只需回滾事務,並且您修改的文件將返回到事務開始之前的狀態(如果在事務啓動之前它不存在,則完全消失)。即使您沒有明確回滾(例如,由於停電),這也會起作用。

或者您可以通過寫入不同的文件來模擬事務,然後通過用新的文件替換舊文件來「提交」。


否則(如果你只處理創建新文件,而不是修改現有的)...

您可以直接刪除文件在您finally塊,在流關閉後/處置(如你已經注意到的)。

+0

我想這將是它(使用finally塊來刪除部分文件)我不想使用NTFS事務,因爲我不知道哪個操作系統和哪個HD會運行....我猜那裏沒有這是一個「聰明的方式」來做到這一點.... – Dani