C# 将文件复制到监视目录时获取事件

C# 将文件复制到监视目录时获取事件,c#,.net-core,filesystemwatcher,C#,.net Core,Filesystemwatcher,我正在创建一个服务,它将监视指定目录中的任何更改(例如,文件创建、重命名等)。我扩展了FileSystemWatcher类,我的主要监视方法是: public void Watch() { Path = "C:\\Users\\Golobitch\\Documents\\ProSyncTest\\"; NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileNam

我正在创建一个服务,它将监视指定目录中的任何更改(例如,文件创建、重命名等)。我扩展了FileSystemWatcher类,我的主要监视方法是:

public void Watch() {
    Path = "C:\\Users\\Golobitch\\Documents\\ProSyncTest\\";

    NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;

    Filter = "*";

    Changed += OnChanged;
    Created += OnChanged;
    Deleted += OnChanged;
    Renamed += OnRenamed;

    EnableRaisingEvents = true;
}

private void OnChanged(object source, FileSystemEventArgs e) {
    Console.WriteLine($"File: {e.Name} {e.ChangeType}");
}

private void OnRenamed(object source, RenamedEventArgs e) {
    Console.WriteLine($"File: {e.OldFullPath} renamed to {e.FullPath}");
}
好的,很好,这样就可以了。每当有新文件或类似文件时,就会调用适当的方法。但是,如果我将大文件从USB复制到这个监视的目录,会怎么样?然后我收到这些通知:

File: Ubuntu 18 LTS dev.vdi Created
File: Ubuntu 18 LTS dev.vdi Changed
File: Ubuntu 18 LTS dev.vdi Changed
所以我实际上不知道文件什么时候被完全转移到我的目录。有什么解决方案,我可以参加的活动吗

编辑:我是否应该检查文件是否被其他进程锁定