我想複製一些文本文件,這是由另一個應用程序編寫的,但我不想做任何事情來阻止其他應用程序。從寫入這些文件。File.Copy是否阻止另一個應用程序寫入文件?
我使用的是File.Copy
,來自System.IO namespace
,C#,.Net Framework 2.0。
我檢查了MSDN的文檔,但沒有具體說明File.Copy
使用的方法。它是一個非託管API調用的包裝?
是否File.Copy
鎖定或阻止以任何方式複製的文件?
在此先感謝有關此任何信息。
我想複製一些文本文件,這是由另一個應用程序編寫的,但我不想做任何事情來阻止其他應用程序。從寫入這些文件。File.Copy是否阻止另一個應用程序寫入文件?
我使用的是File.Copy
,來自System.IO namespace
,C#,.Net Framework 2.0。
我檢查了MSDN的文檔,但沒有具體說明File.Copy
使用的方法。它是一個非託管API調用的包裝?
是否File.Copy
鎖定或阻止以任何方式複製的文件?
在此先感謝有關此任何信息。
您可以使用.Net Reflector(或其他反編譯工具)來查看該方法的內部結構。
其實你可以看到System.IO
File.Copy
使用Microsoft.Win32.Win32Native
庫來處理文件。 Microsoft.Win32.Win32Native
它是所有Win32本機操作的CLR包裝器。
如果其他應用程序通過指定FileShare.None來創建其文件,您將收到UnauthorizedAccessException。所以我想象你只需要在你的應用程序中處理這個特定的異常。
我的不好,感謝Fredrik澄清我的問題。 – netcat
@Joey:我認爲馬特指的是源文件,而不是目標文件。儘管如此,在另一個進程寫入文件時複製文件可能會導致奇怪的結果,具體取決於文件類型以及複製文件的目的。 –