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