我想使用CreateFile()打开要写入的文件。如果文件存在,我将文件指针设置为结尾,然后使用WriteFile()写入数据。如果它不存在,我将写入文件的开头。
我应该使用FILE_APPEND_DATA还是应该在CreateFile()的dwDesiredAccess参数中使用FILE_WRITE_DATA或FILE_WRITE_DATA | FILE_APPEND_DATA?
最后的写作不是写作,那为什么还有FILE_APPEND_DATA?
答案 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
不这样做。