首先说一下,我想删除的是
C:\Documents and Settings\hailang1986\Local Settings\Temporary Internet Files\下的COOKIES文件,
如果高手已经成功用C#删除过
Temporary Internet Files目录下的COOKIES,就不用看下文了,
直接告诉我具体怎么实现,最好能给出源代码.谢谢
我上网搜了一下解决方法,
1.
try
{
    foreach (string strFileName in Directory.GetFiles
            (Environment.GetFolderPath(Environment.SpecialFolder.Cookies)))
            {
               if (strFileName.ToLower().IndexOf("index.dat") == -1)
                  {
                     File.Delete(strFileName);
                  }
            }
}
catch
{
}
经过调试,发现它删除的是
C:\Documents and Settings\hailang1986\Cookies
而没有删除Temporary Internet Files\下的文件
2.使用传统方法,我先查看一下该文件夹内容,
返回的是desktop.ini.
3.我根据
http://dev.csdn.net/article/25/25815.shtm
它说可以通过user.dll等,然后遍历整个文件夹,
我用调试器查看,发现它有进入到Temporary Internet Files
目录下,但还没遍历到我想删除的COOKIES,就已经退出了.我想问下高手,还有没有什么方法可以删除Temporary Internet Files
目录下的COOKIES.我就只有找到一个用VC写的可以清除
Temporary Internet Files目录下的COOKIES,难道C#不行吗?

解决方案 »

  1.   

    不能删除用户计算机中的cookie,Cookies集合中的Remove方法可以删除cookie,但是是服务器端的集合。
    可以利用将cookie的到期日期设置为过去的日期,用户在下次打开浏览器的时候,由浏览器发现cookie过期,自动将其删除。if (Request.Cookies["UserSettings"] != null)
    {
        HttpCookie myCookie = new HttpCookie("UserSettings");
        myCookie.Expires = DateTime.Now.AddDays(-1d);
        Response.Cookies.Add(myCookie);
    }
      

  2.   

    谢谢jobine的回答,但还是不行.
    我做的那个自动注册帐号的软件,
    如果关掉软件(浏览器)重开的话,也可以实现再重新注册帐号.
    问题是,如果没关掉的话,点重新注册,再进入注册的网址,
    还是会进入到会员状态.还有其他方法吗?我知道我要删除的文件是什么,
    但就是没办法进入Temporary Internet Files下进行删除.
      

  3.   

    在用户点击重新注册的时候,你应该将服务器端该用户的cookie移除,并redirect到注册页面。这样就不会导致进入会员状态了。
    即使你知道客户端的Cookie文件,你也没有办法进行删除操作,没有权限啊。一般Cookie是在用SysDriver:\Documents and Settings\Administrator\Cookies文件夹中。对于win9x,是放在SysDriver:\Windows\Cookies下面。
      

  4.   

    点击用户重新注册,我调试了一下,发现已经可以把
    SysDriver:\Documents and Settings\Administrator\Cookies
    下的文件删除,但由于该网站还把cookies写到
    C:\Documents and Settings\hailang1986\Local Settings\Temporary Internet Files\
    下,导致进入会员状态.
    你看一下这个网站.
    http://www.cnblogs.com/huqingyu/archive/2004/07/19/25598.html#Post
    它是用VC做的(有源代码),我下载回来,在点击重新注册之前,
    点击这个软件的清除COOKIES(可以清除Temporary Internet Files目录下的COOKIES).
    就可以重新注册了.
    问题是VC可以得到删除COOKIES的权限,C#没办法实现吗
      

  5.   

    你是打算用程序删除自己机器上的Cookies嘛?不是ASP.net编程?
      

  6.   

    不是ASP.NET.
    就打算清除我自己机器上的Cookies.
    我顶楼的第三种方法,好像可以实现,不过我不大会用.
    直接用他的源码搜不到
      

  7.   

    如果是asp.net编程,还有一种办法。
    1、在Asp页面首部<head>加入   
      Response.Buffer   =   True    
      Response.ExpiresAbsolute   =   Now()   -   1    
      Response.Expires   =   0    
      Response.CacheControl   =   "no-cache"    
      Response.AddHeader   "Pragma",   "No-Cache"  
    2、在HtML代码中加入   
      <HEAD>    
      <META   HTTP-EQUIV="Pragma"   CONTENT="no-cache">    
      <META   HTTP-EQUIV="Cache-Control"   CONTENT="no-cache">    
      <META   HTTP-EQUIV="Expires"   CONTENT="0">    
      </HEAD>
      

  8.   

    你可以试试下面的代码,应该是InternetCache而不是Cookie。
            private void button1_Click(object sender, EventArgs e)
            {
                foreach (string file in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)))
                {
                    File.Delete(file);
                }
            }
      

  9.   

    System.Diagnostics.Process.Start("cmd.exe","/c   del C:\Documents and Settings\hailang1986\Local Settings\Temporary Internet Files\*.*");
      

  10.   

    jobine(愚人渡)我刚才试了一下,用InternetCache确实是进入到了
    Temporary Internet Files目录下,但调试看他搜到的文件为desktop.ini,
    这和我顶楼的第二种方法一样,这个文件夹和普通的文件夹不一样...Avoid(千金散尽还复来)这个方法N早试过了,很奇怪的是用cmd命令行
    del *.*结果什么东西也没删掉,用Windows的可以直接删掉.还有没有其他方法啊...谢谢啦~~~~
      

  11.   

    还是没找到用C#解决的办法,最后用VC写了个EXE,每次点重新注册,就用那个EXE把文件删了,结贴...