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

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

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); } } 

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

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

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

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

 $.ajaxSetup({ cache: false });