遍历Ftp服务器文件速度,CFtpFileFind类遍历FTP目录文件数限制的问题,十万级以上,FindFile延迟怎么解决...

最近做的一个接口,需要从一个FTP目录下载大量图片数据,某某原因就不说了,反正就是根目录下直接来106万张图片,大概每张250k左右,windows资源管理器访问FTP时都打不开。

实现方式如下:

m_ftp_connect->GetCurrentDirectory(cur_path);

m_log->WriteLog(kLogInfo,"开始遍历源FTP目录:%s", cur_path.GetBuffer());

DWORD beginTm  = ::GetTickCount();

CFtpFileFind finder(m_ftp_connect);

BOOL bWorking=finder.FindFile("*.*");

while (bWorking)

{

bWorking = finder.FindNextFile();

DWORD endTm = ::GetTickCount() - beginTm;

if (finder.IsDots() )

continue;

//........

}

定位后发现卡在FindFile()这个位置不动。

自己在本地模拟环境时尝试了在根目录下放了约12W图片,27G,得到的endTm值大概在17000~24000之间。这意味着在现场环境下这种遍历方式会卡在这里更长时间。

大家有没有啥好的解决方案或者对这种状况的比较好的解释?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值