有关用URLDownloadToFile下载网站文件的问题
我用URLDownloadToFile从网站中下载一个文件,该文件第一次下载时,同时就被写入缓存,我以后再下载该文件,由于缓存理已经有了该文件,导致我每次从网站下载不到最新的文件,而是缓存里的文件。很是头疼。我如何用程序实现:在使用URLDownloadToFile函数每次都能够从网站里下载最新的文件?敢请各路大侠高手,多多指教。
            高分相送,出手有分!

解决方案 »

  1.   

    你可以使用这个函数阿
    HRESULT URLDownloadToCacheFile(
        LPUNKNOWN lpUnkcaller,
        LPCSTR szURL,
        LPTSTR szFileName,
        DWORD dwBufLength,
        DWORD dwReserved,
        IBindStatusCallback *pBSC
    );修改 dwBufLength 的值 为 URLOSTRM_GETNEWESTVERSION  
    含义如下:
    Download the resource from the Internet, if it is newer, and store it in the cache. 
    还可以去下面两个值,但是和你的要求不符。具体的你可以到MSDN中去查一下,说得很具体的。URLOSTRM_USECACHEDCOPY  Download the resource from the cache if it is available; otherwise, download it from the Internet. URLOSTRM_USECACHEDCOPY_ONLY  Only download the resource from the cache. 
      

  2.   

    //在临时文件夹中查找文件,并返回找到的文件的完整目录
    CString FindFileInTempFiles(CString szUrl) 
    //创建cacheinfo结构
    LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry= NULL; 
    DWORD   dwEntrySize = 4096; // start buffer size    
    lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize];
    lpCacheEntry->dwStructSize = dwEntrySize;
       
        CString  lpszUrlName;
    lpszUrlName=szUrl;
        BOOL surss;
    surss=GetUrlCacheEntryInfo(lpszUrlName,lpCacheEntry,&dwEntrySize );
    CString szret=lpCacheEntry->lpszLocalFileName;
    delete []lpCacheEntry;
    if(surss==FALSE) return szUrl;
    return szret;
        
    };
    用这个函数,找到临时文件
    然后你在编程删除他