以下代码实现了Cocos的在线下载中的断点续传,可跨平台使用
#include <fstream>
#include <iostream>
#include <curl/curl.h>
long DLManager::downloadResume()
{
//判断该要下载的文件是否存在
//http://blog.csdn.net/roger_77/article/details/1538447/
fstream _file;
_file.open(getTargetPath().c_str(), ios::in);
if(_file)
{
CCLog("%s is Exist", getTargetPath().c_str());
}
else
{
CCLog("%s is not Exist", getTargetPath().c_str());
return -1;
}
_file.close();
//获取已下载文件的大小
long fileSize = 0;
FILE * fp = fopen(getTargetPath().c_str(), "rb");
if (!fp)
{
return -1;
}
fseek(fp, 0, SEEK_END); // 移到文件末尾
fileSize = ftell(fp);
CCLog("getTargetPath().c_str() : size = %d\n", fileSize);
fclose(fp);
return fileSize;
}
bool DLManager::download()
{
//断点续传获取续传文件的大小
_curPackageSize = downloadResume();
//打开文件,将文件指针移到末尾
FILE *fp = fopen(getTargetPath().c_str(), "a+b");
if (! fp)
{
Cocos2.2.3在线下载——断点续传
最新推荐文章于 2021-11-15 11:05:02 发布
本文展示了如何在Cocos2d-x中实现跨平台的在线下载功能,特别是断点续传的代码实现。通过检查本地文件是否存在,获取已下载文件的大小,然后使用curl库设置下载起始位置,实现从上次中断的地方继续下载。
摘要由CSDN通过智能技术生成