FILE_WRITE_DATA和FILE_APPEND_DATA之间的区别

时间:2013-11-20 10:38:38

标签: windows winapi

我想使用CreateFile()打开要写入的文件。如果文件存在,我将文件指针设置为结尾,然后使用WriteFile()写入数据。如果它不存在,我将写入文件的开头。

我应该使用FILE_APPEND_DATA还是应该在CreateFile()的dwDesiredAccess参数中使用FILE_WRITE_DATA或FILE_WRITE_DATA | FILE_APPEND_DATA?

最后的写作不是写作,那为什么还有FILE_APPEND_DATA?

2 个答案:

答案 0 :(得分:3)

FILE_WRITE_DATA允许您写入文件中的任何位置,而FILE_APPEND_DATA允许您将数据附加到文件但不修改现有数据。由于FILE_WRITE_DATA允许您添加,因此使用两者都没有意义。如果您想要做的就是附加,那么FILE_APPEND_DATA就是您所需要的。

答案 1 :(得分:3)

  

为什么有FILE_APPEND_DATA?

FILE_APPEND_DATA会自动写入文件的末尾,这样您就不必在写入之前手动调用SetFilePointer/Ex()FILE_WRITE_DATA不这样做。