使用 WinInet 的方法迭代缓存文件时,如何跳过大文件?

Posted

技术标签:

【中文标题】使用 WinInet 的方法迭代缓存文件时,如何跳过大文件?【英文标题】:When iterating cache files using WinInet's methods, how can I skip large files? 【发布时间】:2010-09-21 05:30:34 【问题描述】:

我的程序的一部分使用了 WinInet 的缓存功能(例如 FindFirstUrlCacheEntry、FindNextUrlCacheEntry)来遍历系统缓存并删除满足某些条件的文件。

问题在于,当在缓存中找到一个大文件时,FindNextUrlCacheEntry 失败并显示 ERROR_INSUFFICIENT_BUFFER,并请求继续使用不合理的缓冲区大小(超过 10MB),而我未能在该系统上分配。

我需要一种方法: - 跳过大文件(不知何故进入下一个条目) - 在不分配大缓冲区的情况下获取大文件的缓存条目

我注意到“检索”缓存功能,但它们都需要 URL - 我什至无法获取我的条目的 URL...

有什么建议吗?

谢谢, 圭浦

【问题讨论】:

【参考方案1】:

原来这是我的错误,WinInet 实际上并没有尝试读取完整文件。 不过,跳过文件的方法可能很有用...

【讨论】:

以上是关于使用 WinInet 的方法迭代缓存文件时,如何跳过大文件?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式清除 WinInet DNS 缓存

使用wininet下载文件时如何避免冻结

Wininet 缓存包装器

使用 Wininet 上传文件时如何添加正确的 Content-Type? (HTTP 放置)

Delphi用WinInet用用户名和密码下载文件

使用“wininet”和“windows.h”时如何解决“IServiceProvider”不明确?