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