2013-04-04 68 views
0

我有以下問題。現在,我們正在關閉時寫出配置文件。發生這種情況的原因是用戶在寫入過程中遇到了進程死機,導致配置損壞。因此,我必須確保磁盤上的文件始終正確,並且沒有部分寫入的文件等。當然,我自己可以使用備份文件來實現一些模式(比如寫入備份,然後用新文件替換舊文件,檢測並恢復失敗寫入的邏輯....),但也許有一種框架那裏已經處理過了嗎?使用C#進行安全磁盤操作

+0

您可能會看看自Vista以來可用的事務性文件系統。你需要PInvoke來使用它。另一種方法是使用數據庫而不是文件 – 2013-04-04 12:04:01

回答

0

你可以在配置文件寫入到一個臨時文件,然後使用Sysyem.IO.File.Replace方法替換爲臨時文件的實際文件:

string config = @"C:\my_config.xml"; 
string backup = @"C:\my_config.bak"; 
string temp = @"C:\temp_config.xml"; 

SaveConfigurationTo(temp); 
File.Replace(temp, config, backup); 

如果你不想創建一個備份舊的配置文件,你可以通過null作爲第三個參數。

請參閱:File.Replace Method在MSDN上。