我现在有这样一个应用,需要把一些文本写入U盘的一个文件中,然后关闭U盘写保护。
我用的是CreateFile,WriteFile,CloseHandle实现的,但是发现有时候会弹出一个Windows的错误框:写保护错误,因软盘为写保护而无法写入软盘。我想这应该是windows的磁盘缓存在搞怪,我想请问一下,如果在CreateFile的参数里不用FILE_FLAG_NO_BUFFERING的情况下如何保证文件已经完全写入U盘(因为如果用了FILE_FLAG_NO_BUFFERING,那么写入必须是扇区的倍数,这样的话写入的文件就和原文本不一样了)?
我用的是CreateFile,WriteFile,CloseHandle实现的,但是发现有时候会弹出一个Windows的错误框:写保护错误,因软盘为写保护而无法写入软盘。我想这应该是windows的磁盘缓存在搞怪,我想请问一下,如果在CreateFile的参数里不用FILE_FLAG_NO_BUFFERING的情况下如何保证文件已经完全写入U盘(因为如果用了FILE_FLAG_NO_BUFFERING,那么写入必须是扇区的倍数,这样的话写入的文件就和原文本不一样了)?
你要判断写入状态,可以判断CreateFile和WriteFile的返回值.
也可以写完后再判断文件是否存在、文件尺寸和你写入的数据是否一致.
用这个看看返回值。。