- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我用下面的代码下载/保存了一张图片,稍后打开,但是在后面的OpenAsync中,抛出了UnauthorizedAccessException,看起来是文件没有关闭,实际上IRandomAccessStream/DataWriter已经被处理掉了。
HttpClient httpClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "http://www.silverlightshow.net/Storage/Users/nikolayraychev/Perspective_Transforms_4.gif");
HttpResponseMessage response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
//Write Image File
StorageFile imageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("test.gif", CreationCollisionOption.ReplaceExisting);
using (IRandomAccessStream fs = await imageFile.OpenAsync(FileAccessMode.ReadWrite))
{
using (DataWriter writer = new DataWriter(fs.GetOutputStreamAt(0)))
{
writer.WriteBytes(await response.Content.ReadAsByteArrayAsync());
await writer.StoreAsync();
writer.DetachStream();
await fs.FlushAsync();
}
}
StorageFile imageFile1 = await ApplicationData.Current.LocalFolder.GetFileAsync("test.gif");
//Exception is throwed here
using (IRandomAccessStream stream = await imageFile1.OpenAsync(FileAccessMode.Read))
{
BitmapImage img = new BitmapImage();
img.SetSource(stream);
}
最佳答案
我有同样的问题,必须在完成之前显式处理流和文件对象。
var file = await ApplicationData.Current.LocalFolder.CreateFileAsync(filename, Windows.Storage.CreationCollisionOption.ReplaceExisting);
using (var fs = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite))
{
var outStream = fs.GetOutputStreamAt(0);
var dataWriter = new Windows.Storage.Streams.DataWriter(outStream);
dataWriter.WriteString("Hello from Test!");
await dataWriter.StoreAsync();
dataWriter.DetachStream();
await outStream.FlushAsync();
outStream.Dispose(); //
fs.Dispose();
}
关于c# - StorageFile.OpenAsync 中的 UnauthorizedAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11168143/
我的代码到底出了什么问题? private void BrowseButton_Click(object sender, RoutedEventArgs e) { Fi
我需要相应地按字节 block 写入文件数据(在我的 Metro 应用程序中)并且有一个类 FileIO 具有方法 AppendTextAsync 和 WriteBytesAsync 但不需要 App
我在 WinRT 工作,但我有点卡住了: 我正在编写具有媒体库功能的音乐播放器。我在 SQLite 数据库中保存有关音乐的信息(例如艺术家等)。我想让用户将他的音乐保存在他想要的任何地方,而不是 Wi
我有一个 StorageFile 对象,我正在尝试读入字符串(用于调试目的)。最简单的方法是什么? 最佳答案 在 C# 中: string text = await Windows.Storage.F
我正在尝试写入一个文件,但“偶尔”我遇到了我认为归结为并发性的问题,因为有些的时候,我得到了一个系统.UnauthorizedAccessException 消息: Access is denied.
我正在尝试完成一项本应非常简单的任务,即按照修改日期的降序从 StorageFolder 中获取 StorageFile 的列表。 检索列表但未排序的当前代码 Task
我遇到了一些关于 FileSavePicker 的问题。是否有关于保存 StorageFile 而不显示任何弹出窗口或对话框询问用户的解决方案。我想从后面的代码中给出存储文件的当前路径。 var by
在 Win8 中,我使用 somefile.CopyAsync(destFolder, newName) 来复制文件。但是当我尝试取消它时,它似乎不起作用。这两种方法是我尝试取消它的方式: 只需使用
我需要能够从 UWP 应用程序中的路径访问文件。 该文件首先由用户使用 OpenFilePicker 选择。然后我需要将此文件传递给 FFmpeg 包装器,该包装器从文件路径设置其输入。目前,对于应用
在这里快速搜索一无所获。因此,我已经开始使用一些相当迂回的方式在我的 WinRT 应用程序中使用 StreamWriter。阅读效果很好,写作效果不同。我所看到的是,当我选择要写入的文件时,如果我选择
我正在尝试将现有文件保存到另一个地方。这是某种副本,但我想允许使用 FileSavePicker 的用户选择新的目的地。这是我的代码: StorageFile currentImage = await
我想编写一个 Win8 应用程序,我在那里使用了一个带有 static 成员的 Configuration 类,它在启动时加载一次,并且可以在任何地方访问运行时。 所以,主要问题是,默认设置存储在一个
以下代码将无法编译,因为 IsOfType 不被接受为项目的方法。文档指出: When this method completes successfully, it returns an IStora
我用下面的代码下载/保存了一张图片,稍后打开,但是在后面的OpenAsync中,抛出了UnauthorizedAccessException,看起来是文件没有关闭,实际上IRandomAccessSt
根据 http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.datecreated.aspx
我正在构建一个 Metro 应用程序,并尝试在将图像保存到 StorageFile 后获取图像的 Uri,这是我的代码: StorageFile file = await ApplicationDat
我正在检查我的数据文件夹中的所有文件,但没有一个被删除。我不确定,但我认为我做错了什么,但我不知道它是什么: private async void pageRoot_Unloaded(object s
我有一个 Metro 风格的应用程序,它每隔 X 秒轮询一次存储在独立存储中的文件(这是对 StorageFile 对象的引用)。 它是一个 PDF 文件,在我的应用程序中,我允许用户打开文档并使用
我想从一个路径手动创建一个StorageFile,但是没有StorageFile 的构造函数。 有没有简单的方法来做这样的事情? StorageFile f = new StorageFile("C:
我有一段代码可以在 URI 有效时从 http URI 正确加载图像,但我不知道如何捕获 OpenAsync 在 URI 无效时抛出的异常(结果为 404)。 问题是当包含调用 OpenAsync 的
我是一名优秀的程序员,十分优秀!