我有一个用软件将文件复制到带有进度条的USB记忆棒。
在API级别,File.Copy完成时,我向用户显示成功消息。问题是,当我显示成功消息时,用户拔出驱动器,并且Windows仍在进行“终结”。在最终确定之前拔出驱动器会调用文件,使其无法显示或损坏。
问题。
在驱动器实际完成之前,如何使File.Copy锁定?棒可能是FAT32或NTFS(很可能是我们设备上的大文件)。
答案 0 :(得分:0)
通过PInvoke调用WinApi FlushFileBuffers功能。 或者告诉消息中的用户他们必须正确弹出USB记忆棒。
答案 1 :(得分:0)
如果可能,而不是使用File.Copy()而不是切换到StreamWriter或BinaryWriter并使用Flush()方法? StreamWriter Flush和BinaryWriter Flush应该尽快将所有内容写入磁盘。