【发布时间】:2018-07-19 08:27:19
【问题描述】:
我正在开发一个允许使用 imgur api 将图像上传到 imgur 的 uwp 平台。 我正在这样做:
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
picker.SuggestedStartLocation =
Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".png");
String path;
Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
if (file != null)
{
path = file.Path;
}
else
{
path = "Operation cancelled.";
}
try
{
var client = new ImgurClient("id", "secret");
var endpoint = new ImageEndpoint(client);
IImage img;
await Task.Run(async () =>
{
await Task.Yield();
Debug.Write("crash at FileStream\n");
using (var fs = new FileStream(@path, FileMode.Open, FileAccess.Read, FileShare.Read))
{
Debug.Write("crash at Upload\n");
img = await endpoint.UploadImageStreamAsync(fs);
Debug.Write("Image uploaded. Image Url: " + img.Link);
Windows.UI.Xaml.Controls.Image image = new Windows.UI.Xaml.Controls.Image();
image.Source = new BitmapImage(new Uri(img.Link));
image.Width = img.Width;
image.Height = img.Height;
imgList.Clear();
imgList.Add(image);
await LoadGalery();
index = 0;
}
});
}
catch (ImgurException imgurEx)
{
Debug.Write("An error occurred uploading an image to Imgur.");
Debug.Write(imgurEx.Message);
}
我有这个错误:
- $exception {System.UnauthorizedAccessException:对路径“C:\Nouveau dossier\mmmh.PNG”的访问被拒绝。在 System.IO.WinRTIOExtensions.d__2`1.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.IO.WinRTFileSystem.d__41.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.IO.WinRTFileSystem.Open(字符串 fullPath,FileMode 模式、FileAccess 访问、FileShare 共享、Int32 bufferSize、 FileOptions 选项,FileStream 父级)在 System.IO.MultiplexingWin32WinRTFileSystem.Open(字符串 fullPath, FileMode 模式、FileAccess 访问、FileShare 共享、Int32 bufferSize、 FileOptions 选项,FileStream 父级)在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess 访问、FileShare 共享、Int32 bufferSize、FileOptions 选项)在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess 访问,文件共享共享)在 App1.MainPage.c__DisplayClass7_1.
d.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 App1.MainPage.d__7.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 App1.MainPage.d__9.MoveNext()} System.UnauthorizedAccessException
我尝试用我的图片在 C:/ 文件夹中创建一个新目录,更改安全权限,以管理员身份执行 Visual Studio 但没有任何改变...
错误发生在 var fs = new FileStream(@path, FileMode.Open, FileAccess.Read, FileShare.Read
我一整天都看到了很多关于这个的话题
【问题讨论】:
-
你能在 %appdata% 中重新创建写入目录
标签: c# .net uwp imgur access-rights