2010-06-24 2 views
1

Я загружаю файлы изображений в своем веб-приложении mvc. Я хочу показать это как логотип на моем сайте всякий раз, когда я загружаю любое выбранное изображение. Для этого мне нужно очистить кеш браузера. Ниже приведен набор функций, которые я использую для очистки кеша.Как очистить кеш IE без удаления файлов?

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. 
     } 
    } 
+2

Если вы сделаете это, убедитесь, что вы всегда включаете комментарий в пустой блок catch, объясняя программисту, который следует за вами, почему существует пустой блок catch. –

0

Может быть, используя в своих сценариях, используя JQuery эту строку кода, чтобы исправить браузеры сделать кэширование:

$.ajaxSetup({ cache: false }); 
+1

Этот вопрос касается C#. В C# нет jQuery –

Смежные вопросы