2013-08-01 123 views
0

這是我第一次編寫代碼到函數文件操作。我需要將舊文件與新文件進行比較。如果舊文件名等於新文件名,則需要覆蓋(更新)。如果不相等,則創建一個新的文件名。如何以簡單和最好的方式做到這一點?c#比較2個文件 - 創建和更新函數

public void FileCreateOrOverwritten(string file) 
{ 
    try 
    { 
     if (File.Exists(file)) 
     { 
      if (file == newFile) 
      { 
       //how to replace old file with a new one with new data (xml document) 
       //need to use filestream 
      } 
      else 
      { 
       //how to create a new file with new data (xml document) 
      } 

     } 
     . 
     . 
     . 
    } 
+0

[這](http://stackoverflow.com/a/2281769/706456)須解決它適合你。 – oleksii

+0

你提到的XML - 考慮序列化像http://stackoverflow.com/questions/364253/how-to-deserialize-xml-document或http://stackoverflow.com/questions/4220973/c-sharp-xml-serialization-反序列化 – doctorlove

回答

0

到(過)寫一個文件,

using (var writer = File.CreateText(file)) 
{ 
    for (...) 
    { 
     writer.WriteLine(...); 
    } 
} 

你不那麼需要決定,如果你有一箇舊的過度寫入或一個新的創造。 從docs

「這種方法是等同於StreamWriter的(字符串,布爾值) 構造函數重載設置爲false追加參數,如果通過路徑指定的 文件不存在,則創建它。如果該文件確實存在 ,其內容將被覆蓋」

如果你是新來這個,注意using

+1

而應該使用'using'的原因是,它確保在程序退出使用塊 – flai

+0

之後調用'writer'的Dispose方法......我不喜歡這種方式。我想也許最好是先刪除舊文件,然後移動新文件,如果他們的文件名相同... – user1358072

+1

@ user1358072不管你想要什麼。覆寫實際上是爲你刪除舊文件,但是如果你願意自己做,那很奇怪,但它是你的代碼 – doctorlove