1

我有一个问题,在我的应用程序中使用或显示保存在我的应用程序本地文件夹中的 Gridview 中的图像,我想通过选择它们来删除这些图像,但问题是这些图像正在使用中并且在任何情况下都在 Windows 中(文件或图像)打开或正在使用,因此不应从驱动器中删除。我想从硬盘中删除图像。m 通过BitmapImage 中的URI 路径在GridView 中使用或访问这些图像。像这样

私有 ImageSource _image = null; this._image = new BitmapImage(new Uri(new Uri("ms-appdata:///local/RecentImages/"), this._imagePath));

我试图删除请告诉我如何停止或处理 GridView 和 StorageFile 之间的链接或如何从存储设备中删除图像?

4

1 回答 1

0

我假设没有其他应用程序同时加载相同的图像。这是一种在将图像文件流加载到内存后关闭图像文件流的方法。

    /// <summary>
    /// Gets the bitmap.
    /// </summary>
    /// <param name="path">The path.</param>
    /// <returns></returns>
    public static BitmapSource GetBitmap(string path)
    {
        if (!File.Exists(path)) return null;

        MemoryStream ms = new MemoryStream();
        BitmapImage bi = new BitmapImage();
        byte[] bytArray = File.ReadAllBytes(path);
        ms.Write(bytArray, 0, bytArray.Length); ms.Position = 0;
        bi.BeginInit();
        bi.StreamSource = ms;
        bi.EndInit();
        return bi;
    }
于 2012-06-16T09:48:55.853 回答