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

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

这是我的代码:

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协议(protocol)无法读懂您的想法。它不知道您打算附加到文件。 WinInet API doesn't directly support appending to files。相反,您需要使用FtpCommand直接发送APPEND FTP命令。有关示例,请参见链接的支持文章。

10-08 12:49