1

アプリのローカルフォルダに保存されているGridviewの画像を使用または表示しているアプリで、これらの画像を選択して削除したいのですが、問題は、これらの画像が使用中であり、ウィンドウに表示されていることです(ファイルまたはイメージ)開いているか使用中なので、ドライブから削除しないでください。ハードディスクから画像を削除したい。mBitmapImageのURIパスを介してGridViewでこれらの画像を使用またはアクセスします。このような

private 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 に答える