2009-08-31 27 views
1

我在寫一些需要複製目錄中所有文件的備份工具。現在我使用C#的File.Copy(String, String, Boolean)方法。但另一個應用程序(我無法更改)同時寫入該目錄中的文件。使用File.Copy複製更改文件

所以現在我想知道是否有可能在複製過程中創建損壞的備份文件的過程中文件被更改?

謝謝

回答

3

不,它不是。基礎文件系統將確保不會發生。

+0

有沒有人有一個在線來源,確認並進一步解釋這一點?我試圖自己谷歌,但我找不到像樣的東西。 – 2009-09-01 12:13:42

+1

您是否確實遇到過描述的問題?這裏有一個體面的描述:http://en.wikipedia.org/wiki/File_locking#In_Microsoft_Windows我會說這取決於你是如何打開你的文件。我敢打賭,FileInfo.CopyTo應該爲你工作得更好。 – Rashack 2009-09-01 13:23:50

+0

不,我沒有遇到上述問題。但是備份工具將會在生產環境中非常密集地使用,所以我非常小心。我無法控制其他應用程序如何打開我正在備份的文件。而且我注意到,File.Copy方法在另一個應用程序對文件具有寫鎖定(但不是讀鎖定)的情況下也適用。所以我擔心它可能會在文件的中間修改一個副本,從而破壞文件。如果我能找到確認此事不可能發生的消息來源,我會更放心。 – 2009-09-02 06:32:05