如何正确删除存储文件?

时间:2014-01-17 07:27:29

标签: c# windows-store-apps

在我的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.
  }

问题:我应该如何正确删除文件?

1 个答案:

答案 0 :(得分:0)

听起来你正试图删除你加载的图像文件。文件保持锁定状态,直到图像被丢弃。在我看来,我认为你应该在加载后复制图像,并在图像控制中使用该图像副本

您可以使用以下代码来完成您的方案,甚至无需在删除之前处理​​图像,

BitmapImage bmpImage = new BitmapImage();
bmpImage.BeginInit();
Uri uri = new Uri(filePath,UriKind.RelativeOrAbsolute);
bmpImage.UriSource = uri;
bmpImage.CacheOption = BitmapCacheOption.OnLoad;
bmpImage.EndInit();

看看它是否有帮助。 :)