Ays*_*yse 2 c windows winapi text-files createfile
我正在尝试打开一个文本文件,将一些数据写入其中,然后在已经写入文件的数据末尾追加一些数据,但这不起作用.任何人都可以帮我解决我的代码问题吗? 代码链:
char buffer[]="Write this text to file";
DWORD dwWritten; // number of bytes written to file
HANDLE hFile;
hFile=CreateFile("file.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
if(hFile==INVALID_HANDLE_VALUE)
{
MessageBox(0,"Could not create/open a file","Error",16);
return 0;
}
WriteFile(hFile,buffer,sizeof(buffer),&dwWritten,0);
DWORD dwPtr = SetFilePointer( hFile, dwWritten, NULL, FILE_END); //set pointer position to end file
WriteFile(hFile,buffer,sizeof(buffer),&dwPtr,NULL);
CloseHandle(hFile);
Run Code Online (Sandbox Code Playgroud)
如果要将数据附加到文件,可以使用FILE_APPEND_DATA标志将其传递给CreateFile方法.这可以通过使用包含FILE_APPEND_DATA的FILE_GENERIC_WRITE标志来完成
hFile=CreateFile("file.txt",FILE_GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
Run Code Online (Sandbox Code Playgroud)
当您写入文件时,文件指针移动也会移动并指向当前位置.如果要写入文件末尾,可以使用
SetFilePointer( hFile, 0, NULL, FILE_END);
Run Code Online (Sandbox Code Playgroud)
并使用WriteFile作为
WriteFile(hFile,buffer,strlen(buffer),&dwWritten,NULL);
Run Code Online (Sandbox Code Playgroud)