私のアプリでは、ビットマップを png に変換し、フォルダー内のファイルに保存します。2回目に書き込むためにファイルを再度開こうとするUnauthorisedAccessException
と、"Access is denied"
. [保存] ボタンをクリックすると、次の関数が呼び出されます。
private async void SaveClicked(object sender, RoutedEventArgs e)
{
WriteableBitmap wb = new WriteableBitmap(InkCanvas2, null);
Image image = new Image();
image.Height = 150;
image.Width = 450;
image.Source = wb;
await SaveToStorage(wb, image);
TransparentLayer.Visibility = System.Windows.Visibility.Collapsed;
}
SaveToStorage には次のコードがあります
private async Task SaveToStorage(WriteableBitmap i, Image im)
{
try
{
var dataFolder = await local.CreateFolderAsync("Page", CreationCollisionOption.OpenIfExists);
using (var testpng = await dataFolder.OpenStreamForWriteAsync("testpng.png", CreationCollisionOption.ReplaceExisting))
// HITS EXCEPTION AND GOES TO CATCH BLOCK
{
i.WritePNG(testpng);
testpng.Flush();
testpng.Close();
}
}
catch(Exception e)
{
string txt = e.Message;
}
}
最初はエラーなしで保存され、2 回目は例外がスローされます。なぜこれが起こるのか分かりますか?