如何清除IE缓存而不删除正在使用的文件?

时间:2010-06-24 14:51:17

标签: c# browser

我正在我的mvc网络应用中上传图片文件。每当我上传任何选定的图像时,我想在我的网站上将其显示为徽标。为此,我需要清除浏览器缓存。以下是我用于清除缓存的一组功能。

void clearIECache()
    {
      ClearFolder(new DirectoryInfo(Environment.GetFolderPath
         (Environment.SpecialFolder.InternetCache)));
    }

    void ClearFolder(DirectoryInfo folder)
    {
      foreach (FileInfo file in folder.GetFiles())
      { file.Delete(); }
      foreach (DirectoryInfo subfolder in folder.GetDirectories())
      { ClearFolder(subfolder); }
    }

上述代码的问题是,只要它试图删除正在使用的任何文件,它就会中断。我想跳过这样的文件,以便它可以顺利运行。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:2)

使用Try/Catch来捕获错误并忽略它们:

    foreach (FileInfo file in folder.GetFiles())
    {
        try
        {
            file.Delete();
        }
        catch (Exception)
        {
           // Swallow "File in use" errors.
        }
    }

答案 1 :(得分:0)

也许在脚本中使用jquery这行代码来纠正浏览器的缓存:

$.ajaxSetup({ cache: false });