2012-04-09 55 views
0

我正在寫一個簡單的文件夾同步應用程序。避免複製文件時發生錯誤,另一個進程寫入文件

因此,我想在當時在源文件夾中創建一個文件,它應該是 複製到目的地。

我的問題是:如何避免錯誤,當試圖讀取源文件,因爲另一個進程可能要寫入它?我應該以讀寫分享模式讀取文件,還是足夠簡單的System.IO.File.Copy?

謝謝!

+0

你想阻止作家嗎?還是你想讓他們?如果是後者,你想看看他們的變化嗎? – 2012-04-09 14:29:42

+0

我想讓作家。我不介意複製過程是否失敗,但寫入過程不應該失敗。 – alexandertr 2012-04-10 05:40:43

回答

0

文件複製將在文件被複制時鎖定文件。
如果不是鎖定,該文件可能被複制在另一個過程中損壞
所以,當你開始複製過程,有兩種可能性:

  • 沒有對源文件的鎖,然後File.Copy開始工作 並鎖定源文件。
  • 有人對你的源文件有鎖定,那麼File.Copy會拋出一個 異常。
相關問題