我在使用Wininet时遇到了麻烦

时间:2014-06-05 04:04:48

标签: c++ function upload ftp wininet

我在C++编程,我想将文件上传到我已经使用以下代码完成的Web服务器:

#include "stdafx.h"
#include <windows.h>
#include <wininet.h>
#pragma comment(lib, "wininet")


int _tmain(int argc, _TCHAR* argv[])
{
  HINTERNET hInternet;
  HINTERNET hFtp;

  hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL,NULL,0);
  hFtp = InternetConnect(hInternet, L"ftp.freetzi.com", INTERNET_DEFAULT_FTP_PORT, L"myuser.freetzi.com", "mypassword", INTERNET_SERVICE_FTP, 0, 0);

  FtpPutFile(hFtp, L"C:\\deneme.txt", L"coolName.txt", FTP_TRANSFER_TYPE_BINARY, 0);

  if ( FtpPutFile(hFtp, L"C:\\deneme.txt", L"coolName.txt", FTP_TRANSFER_TYPE_BINARY, 0) )
  {
    MessageBox(NULL, L"Upload Successful.", L"Title", NULL);
  }
  else
  {
            //This is the message I get...
    MessageBox(NULL, L"Upload Failed.", L"Title", NULL);
  }


  InternetCloseHandle(hFtp);
  InternetCloseHandle(hInternet);


  return 0;
}

但是由于这个程序将被很多人使用,如果目标文件已经存在,我找不到重命名上传文件coolname.txt的方法,上面的代码将覆盖旧数据并重写新的一次使用2次或更多次,

我试过了:

  1. &#34; /public_html/log.txt" + std :: to_string(rand())
  2. 功能: -
    generateFileName( std::string const& directory, std::string const& rootName, std::string const& extension ) { std::ostringstream results; results.fill( '0' ); results << directory << '/' << rootName << '-' << std::setw(4) << rand() << extension; return results.str(); }
  3. 但是,我找到了使用FtpFindFirstFile完成此任务的方法但我无法知道如何使用它。如果有人能够更清楚地解释我或给出一些例子,我会非常高兴。

    参考:http://msdn.microsoft.com/en-us/library/windows/desktop/aa384180(v=vs.85).aspx

0 个答案:

没有答案