C++ 威尼特;C++;:使用FTP写入和附加文件,而不是覆盖文件

C++ 威尼特;C++;:使用FTP写入和附加文件,而不是覆盖文件,c++,wininet,C++,Wininet,我需要我的应用程序通过FTP连接到服务器,并使用wininet库写入特定文件 到目前为止,一切正常,程序将写入该文件。但是,每当我向文件添加新值时,它都会被覆盖。我想将新数据写入同一文件末尾的新行 这是我的密码: string user = "apaaaasdasdasdsdsa"; HINTERNET hInternet; HINTERNET hFtpSession; hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL

我需要我的应用程序通过FTP连接到服务器,并使用wininet库写入特定文件

到目前为止,一切正常,程序将写入该文件。但是,每当我向文件添加新值时,它都会被覆盖。我想将新数据写入同一文件末尾的新行

这是我的密码:

string user = "apaaaasdasdasdsdsa";

HINTERNET hInternet;
HINTERNET hFtpSession;
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
hFtpSession = InternetConnect(hInternet, "ftp.blabla", port, "blablabla", "password", INTERNET_SERVICE_FTP, 0, 0);

// Testing
HINTERNET hFile = FtpOpenFile(hFtpSession, "test.html", GENERIC_WRITE , FTP_TRANSFER_TYPE_ASCII, 0);
DWORD wb = 0;

char tab2[1024];
strcpy_s(tab2, user.c_str());

InternetWriteFile(hFile, tab2, strlen(tab2), &wb);

//------------------------------

InternetCloseHandle(hFtpSession);
InternetCloseHandle(hInternet);

FTP协议无法读懂你的心思。它不知道您打算附加到文件。这个相反,您需要使用
FtpCommand
直接发送
APPEND
FTP命令。有关示例,请参阅链接的支持文章。

谢谢您的回答。就像我想的那样。我必须下载它,在客户端用新数据(+旧数据)更改它,然后重新加载它。正如我所说,如果你想追加,那么使用
append
命令就可以了。如果您不打算更改文件的现有部分,则无需下载。我的FTP已生锈,因此您可能希望了解是否可以对文件的中间部分进行更改。