在我的Windows应用商店应用中,我的存储文件夹中有一些文件(图像)。
然后,当我想使用图像时,我就像这样创建位图:
BitmapImage BitmapImage = new BitmapImage(new Uri("full_file_path"));
我的Image
控件有ImageSource = "{Binding Path=BitmapImage}"
。
一切都很棒。但是当我想删除我的文件时,我使用:
BitmapImage = null;
然后:
try
{
await storageFile.DeleteAsync(StorageDeleteOption.Default);
}
catch (UnauthorizedAccessException e)
{
// and I get exception here.
}
问题:我应该如何正确删除文件?
答案 0 :(得分:0)
听起来你正试图删除你加载的图像文件。文件保持锁定状态,直到图像被丢弃。在我看来,我认为你应该在加载后复制图像,并在图像控制中使用该图像副本
您可以使用以下代码来完成您的方案,甚至无需在删除之前处理图像,
BitmapImage bmpImage = new BitmapImage();
bmpImage.BeginInit();
Uri uri = new Uri(filePath,UriKind.RelativeOrAbsolute);
bmpImage.UriSource = uri;
bmpImage.CacheOption = BitmapCacheOption.OnLoad;
bmpImage.EndInit();
看看它是否有帮助。 :)