WinInet CFtpConnection::openfile 多个文件

Posted

技术标签:

【中文标题】WinInet CFtpConnection::openfile 多个文件【英文标题】:WinInet CFtpConnection::openfile multiple files 【发布时间】:2013-05-31 12:40:59 【问题描述】:

我正在尝试编写一个适用于 ftp 服务器上的文件的应用程序。我需要在一个 ftp 连接中打开多个文件。我这样做

CInternetSession session(_T("Session1"));
CFtpConnection* pConnect = NULL;
CInternetFile* pFile1;
CInternetFile* pFile2;

pConnect = session.GetFtpConnection(_T("10.0.172.113"), _T("user11"), _T("12345")); 

pFile1 = pConnect->OpenFile(L"folder1\\1.txt",GENERIC_WRITE,FTP_TRANSFER_TYPE_BINARY);
pFile2 = pConnect->OpenFile(L"folder1\\2.txt",GENERIC_READ,FTP_TRANSFER_TYPE_BINARY);

pConnect->Close();

但是打开 2.txt 抛出异常。 有没有办法在不创建新的 ftp 连接的情况下打开两个文件?

【问题讨论】:

【参考方案1】:

不,不可能http://msdn.microsoft.com/library/vstudio/1st6z7sc.aspx:

在调用 OpenFile 之后直到调用 CInternetConnection::Close, 应用程序只能调用 CInternetFile::Read, CInternetFile::Write、CInternetConnection::Close 或 CFtpFileFind::FindFile。 为同一个 FTP 调用其他 FTP 函数 会话将失败并将错误代码设置为 FTP_ETRANSFER_IN_PROGRESS

【讨论】:

以上是关于WinInet CFtpConnection::openfile 多个文件的主要内容,如果未能解决你的问题,请参考以下文章

WinInet - 没有 Internet Explorer 就无法工作?

以编程方式清除 WinInet DNS 缓存

Delphi - 使用 Wininet 下载文件?

Wininet 缓存包装器

Wininet上传文件TCHAR问题

Delphi 中用于 FTP 的 WinInet 包装器