- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Metro 风格的应用程序,它每隔 X 秒轮询一次存储在独立存储中的文件(这是对 StorageFile
对象的引用)。
它是一个 PDF 文件,在我的应用程序中,我允许用户打开文档并使用 native 阅读器应用程序对文档进行更改。
我的问题是,当我轮询文档时,我在 StorageFile
上调用了 OpenStreamForReadAsync
,但是如果您在用户保存所做更改的精确时刻执行此操作到阅读器应用程序中的文档,我收到一个 Access denied
异常被抛出。
我假设这是因为 Windows 正在写入文件,这很好,我只需要知道如何查询本地 StorageFile
引用以查看是否允许我打开它. (理想情况下不调用包含在 try catch 中的 OpenStreamForReadAsync
)。
最佳答案
Windows 团队会告诉您执行 try/catch 操作。当我请求 File.Exists() API 时,他们就是这么告诉我的。
推理是这样的:假设您正在寻找的 API 存在......如果在您调用该 API 和您尝试打开文件之间的毫秒内,文件被打开/删除/重命名,会发生什么情况?繁荣!您回到了最初的异常,需要执行 try/catch 以避免难以重现的崩溃。因此,既然您无论如何都需要捕获此异常,那么您也可以只是捕获该异常。通过不提供 File.Exists 或您正在寻找的 API,它们迫使我们捕获异常,这样用户就不会遇到这些罕见的竞争条件错误。
关于c# - Windows 8 中的 StorageFile 访问被拒绝异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11303256/
我的代码到底出了什么问题? 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 的
我是一名优秀的程序员,十分优秀!