在File.Copy期间锁定目录并获取FileNotFoundException

时间:2017-06-30 12:20:02

标签: c# .net visual-studio filenotfoundexception

我正在尝试将共享文件复制到本地副本:

File.Copy("\\sharedmachine\directory\file.exe", "\\localmachine\directory\file.exe", true);

源文件存在但是如果另一个用户/机器在“Windows资源管理器”中打开了目录,则此操作锁定并且在复制期间我得到System.IO.FileNotFoundException

即使有人在另一台机器上打开目录,有一些方法可以复制文件吗?

由于

1 个答案:

答案 0 :(得分:1)

以只读方式打开文件,然后将其写入目标,以便访问该文件的应用程序不会被阻止。

using (var from = File.Open("sourcePath", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    using (var to = File.OpenWrite("destPath"))
    {
        from.CopyTo(to);
    }