我正在编写一个应用程序,需要从当前正在执行文件的网络目录复制文件。从UNC路径复制正在执行的文件
我试图与
using (var source = new FileStream(fileData.FileName,
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite))
打开文件我打开我创造另一个流复制到文件流之后。
但是,这会引发异常,指出该文件正在被另一个进程使用。我不知道如何解决这个问题。如果我只使用文件资源管理器,它会复制文件。所以我知道这是可能的,只是不确定如何。
编辑: 我也尝试了简单的File.Copy(source, destination)
,我得到了同样的异常说明该文件正在被另一个进程使用。
卷影复制服务可能会帮助你:http://www.codeproject.com/Articles/22745/Volume-Shadow-Copies-from-NET – k0stya
什么操作系统是网络文件服务器和客户端运行,你必须支持任何一方的任何其他操作系统版本?我问,作为[SMB VSS](http://technet.microsoft.com/en-us/library/jj612865.aspx)在Windows 2012上可用,将是一个很好的解决方案。 –
安装程序是在所有机器上与Windows Server 2008同构的服务设置。 – btlog