gpt4 book ai didi

c++ - MFC :GetFile(Download) issue 中的 FTPClient

转载 作者:行者123 更新时间:2023-11-30 04:37:33 25 4
gpt4 key购买 nike

我正在使用 CFtpConnection 类使用 MFC 创建我的 FTPClient 库。我正在使用 GetFile 从服务器下载文件。我的要求是,如果我在下载 50-60 MB 视频时从服务器下载 100 MB 视频,如果我播放该视频,而它应该播放到那个特定位置,直到那个时候它已经下载了。

这样我可以做任何我需要传递的额外参数或类似的东西吗?

我的FTP库下载方法如下:

CFtpConnection* m_pConnect;
bool CFTPClient::Download(LPCTSTR pstrRemoteFile, LPCTSTR pstrLocalFile,
DWORD dwFlags)
{
m_pConnect->GetFile(pstrRemoteFile,pstrLocalFile,dwFlags);
return true;
}

在调用我的应用程序时,我是这样做的:

CFTPClient m_objftpclient ; 
m_objftpclient.Download("MVI_2884_1.avi","D:\\MVI_2884_1.avi",FTP_TRANSFER_TYPE_BINARY);

最佳答案

您无法轻易做到,甚至根本无法做到。 CFtpConnection 的 GetFile 方法是阻塞的,这意味着它只会在文件下载时退出。因此,即使您将其线程化,您监控下载的唯一方法是获取磁盘上文件的大小。

如果您要实现视频流,您应该下降一个级别并在套接字级别工作。如果你真的想使用 CFtpConnection,你应该使用 OpenFile 方法,它返回一个 CInternetFile,它可以按 block 读取,允许你监视下载并共享下载文件的缓冲区以供播放。

关于c++ - MFC :GetFile(Download) issue 中的 FTPClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com