// 获取路径
AnsiString strPath;
GetDlgItemText(EditCachePath, strPath);
strPath += "\\*.*";    
//路径是: C:\\Documents and Settings\\Administrator\\Local Settings\\Temporary Internet Files\\*.*WIN32_FIND_DATA fd;
HANDLE hFind = FindFirstFile(strPath, &fd);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
ListBoxFile->AddString(fd.cFileName);
} while (FindNextFile(hFind, &fd));
}结果居然是:
---------------------
.
..
Content.IE5
Content.MSO
Content.Word
desktop.ini
---------------------
Windows是不是在这里做了手脚?要怎么才能获取到全部的网页缓存文件呢?

解决方案 »

  1.   

    FindFirstUrlCacheEntry/FindNextUrlCacheEntry 
      

  2.   

    Temporary Internet Files文件夹中存在的就是你Find出来的这些,其中Content.IE5是一个子文件夹,下面还有很多子文件夹。在explorer中看到的文件是被处理后显示的,并不是真实的目录结构。
    你可以用1楼给的函数来查找缓存信息。
      

  3.   

    顺便提一下,你可以把Temporary Internet Files中的desktop.ini先去掉只读属性,然后删除,然后就可以在explorer中看到实际的目录结构了。或者开一个命令提示窗口,进入到Temporary Internet Files路径里面,然后执行dir /a /s /p也可以看。
      

  4.   

    bool GetIEHistory(void) //获得IE缓存

    try 
    { HANDLE hEntry; 
    LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = NULL; 
    DWORD dwEntrySize = 0; hEntry = FindFirstUrlCacheEntry(NULL, NULL, &dwEntrySize); 
    lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize]; 
    hEntry = FindFirstUrlCacheEntry(NULL, lpCacheEntry, &dwEntrySize); 
    if(hEntry) 

    do 

    //(lpCacheEntry->lpszSourceUrlName);   --- file name
    dwEntrySize = 0; 
    FindNextUrlCacheEntry(hEntry, NULL, &dwEntrySize); 
    delete [] lpCacheEntry; 
    lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new char[dwEntrySize]; 

    while (FindNextUrlCacheEntry(hEntry, lpCacheEntry, &dwEntrySize)); 
      

  5.   

    UP
    要包含什么头文件或者LIB吗
      

  6.   

    [ILINK32 Error] Error: Unresolved external 'FindFirstUrlCacheEntryA' referenced from D:\我的文档\GETPAGECONTENT\DEBUG\MAINCLASS.OBJ
    为什么连接一直错误呢
      

  7.   

     #include "wininet.h" #include "UrlHist.h" wininet.lib
      

  8.   

    #pragma comment(lib,"wininet.lib")