.NET File.Copy等待完成

时间:2013-09-13 13:45:24

标签: c# .net file-io

我有一个用软件将文件复制到带有进度条的USB记忆棒。

在API级别,File.Copy完成时,我向用户显示成功消息。问题是,当我显示成功消息时,用户拔出驱动器,并且Windows仍在进行“终结”。在最终确定之前拔出驱动器会调用文件,使其无法显示或损坏。

问题。

在驱动器实际完成之前,如何使File.Copy锁定?棒可能是FAT32或NTFS(很可能是我们设备上的大文件)。

2 个答案:

答案 0 :(得分:0)

通过PInvoke调用WinApi FlushFileBuffers功能。 或者告诉消息中的用户他们必须正确弹出USB记忆棒。

答案 1 :(得分:0)

如果可能,而不是使用File.Copy()而不是切换到StreamWriter或BinaryWriter并使用Flush()方法? StreamWriter FlushBinaryWriter Flush应该尽快将所有内容写入磁盘。