У меня есть следующий код в ОС Windows 8 C# приложение, которое получает изображение с сервера и сохраняет его:UnauthorizedAccessException при сохранении файла
private async Task httpFetcher()
{
HttpClient httpClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(
HttpMethod.Get, "http://www.example.com/fakeImageRotator.php"); // FOR EXAMPLE
HttpResponseMessage response = await httpClient.SendAsync(request,
HttpCompletionOption.ResponseHeadersRead);
Uri imageUri;
BitmapImage image = null;
try
{
var imageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(
"test.png", CreationCollisionOption.ReplaceExisting);
var fs = await imageFile.OpenAsync(FileAccessMode.ReadWrite);
DataWriter writer = new DataWriter(fs.GetOutputStreamAt(0));
writer.WriteBytes(await response.Content.ReadAsByteArrayAsync());
await writer.StoreAsync();
writer.DetachStream();
await fs.FlushAsync();
writer.Dispose();
if (Uri.TryCreate(imageFile.Path, UriKind.RelativeOrAbsolute, out imageUri))
{
image = new BitmapImage(imageUri);
}
}
catch (Exception e)
{
return;
}
image1.Source = image;
}
Оказывается, что я случайно получаю ошибки на этой конкретной линии:
var imageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(
"test.png", CreationCollisionOption.ReplaceExisting);
Это не всегда происходит, поэтому я не уверен, как определить проблему. Все подробности об ошибках здесь:
UnauthorizedAccessException был пойман
Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задач) при System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача задач) при System.Runtime.CompilerServices. TaskAwaiter`1.GetResult() на TestApp.MainPage.d__4.MoveNext() в D: \ TestApp \ TestApp \ MainPage.xaml.cs: линия 86
Хм, теперь я получаю UnauthorizedAccessException (доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))) в 'var stream = await imageFile.OpenAsync (Windows.Storage.FileAccessMode.Read);'. Вероятно, на этот раз выдаются разрешения? Есть идеи? :/ – ReignOfComputer
@ReignOfComputer - см. Мое обновленное сообщение. Это изменилось совсем немного. –
Омг, который это так благодарит!Ты восхитителен! : D – ReignOfComputer