У меня есть приложение WPF, которое использует некоторые файлы изображений, хранящиеся локально в машине. В процессе очистки я должен удалить все изображения, когда приложение закрывается.Выполнение процесса хранения локально сохраненного файла изображения и невозможности удаления
Для очистки я использую метод IDisposable и call для удаления файлов изображений, но метод выдает исключение, этот файл не может быть удален, поскольку он используется процессом.
При внедрении метода деструктора и вызова метода очистки он отлично работает, и он очищает все файлы, но мне не разрешено использовать его.
Нужна помощь, чтобы получить это конкретное место, откуда я могу позвонить на очистку.
только для справки, ниже код, который я использую для удаления изображений, реализуя IDisposable.
private void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
this.CleanUp();
this.disposed = true;
}
}
}
void CleanUpModule(object sender, EventArgs e)
{
var folderPath =
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Somelocation\\IconImages\\");
if (Directory.Exists(folderPath) == false)
{
return;
}
// Clean all the temporary files.
foreach (var file in Directory.GetFiles(folderPath))
{
File.Delete(file);
}
}
Я думаю, что это также важно, как вы используете изображения .. есть некоторый код релиз должен произойти –
@kishoreVM Согласитесь, загрузка изображений с использованием 'Новый BitmapImage (Uri)» является одним из способов, который вызывает проблему. – kennyzx
@ kennyzx Настройка BitmapCacheOption.OnLoad также работает, когда вы загружаете изображение из локального файла Uri. Хотя явно использование (и закрытие) потока, вероятно, является «более безопасным» способом. +1. – Clemens