BOOL DeleteFolder(LPCTSTR lpszPath)//清除cookie

SHFILEOPSTRUCT FileOp; 
ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));
FileOp.fFlags = FOF_NOCONFIRMATION | FOF_SILENT; 
FileOp.hNameMappings = NULL; 
FileOp.hwnd = NULL; 
FileOp.lpszProgressTitle = NULL; 
FileOp.pFrom = lpszPath; 
FileOp.pTo = NULL; 
FileOp.wFunc = FO_DELETE;
return SHFileOperation(&FileOp) == 0;
}         ITEMIDLIST* a;
char buffer[255];
SHGetSpecialFolderLocation(0,CSIDL_COOKIES,&a);
SHGetPathFromIDList(a,buffer);
CString Path;
Path.Format("%s%s",buffer,"\\*.txt");
InternetSetOption(0,INTERNET_OPTION_END_BROWSER_SESSION,0,0); 
// DeleteFolder("C:\\Documents and Settings\\Administrator\\Cookies\\*.txt");调用这句就可以删除cookie文件夹下的txt文件
DeleteFolder(Path);为什么这句就不成功呢?

解决方案 »

  1.   

    下个断点 调试一下看看Path的内容是不是C:\\Documents and Settings\\Administrator\\Cookies\\*.txtPS:
    清空Cookie建议用
    CInternetSession::SetCookie
    static BOOL SetCookie( LPCSTR pstrUrl, LPCTSTR pstrCookieName, LPCTSTR pstrCookieData );
      

  2.   

    // DeleteFolder("C:\\Documents and Settings\\Administrator\\Cookies\\*.txt");调用这句就可以删除cookie文件夹下的txt文件
    DeleteFolder(Path);为什么这句就不成功呢?Debug下看看你的Path的路径对吗?
      

  3.   

    沉得好快~!~
    我顶.................Path的内容C:\Documents and Settings\Administrator\Cookies\*.txt 
    正确不知道是否是字符集当问题?
      

  4.   

    对应单个文件的路径字符串,或对于多个文件必须以NULL作为字符串的结尾或文件路径名之间的间隔,否则在程序运行的时候会发生错误。