问题标签 [storagefile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Windows 8 中的 StorageFile 访问被拒绝异常
StorageFile
我有一个 Metro 风格的应用程序,它每 X 秒轮询一次存储在隔离存储中的文件(这是对对象的引用)。
它是一个 PDF 文件,在我的应用程序中,我允许用户使用本机阅读器应用程序打开文档并更改文档。
我的问题是我在轮询文档时调用OpenStreamForReadAsync
,StorageFile
但是如果您在用户保存对 Reader 应用程序中对文档所做的更改的精确时刻执行此操作,我会Access denied
抛出异常。
我假设这是因为 Windows 正在写入文件,这很好,我只需要知道如何查询本地StorageFile
引用以查看是否允许我打开它。(理想情况下,没有调用OpenStreamForReadAsync
包裹在 try catch 中)。
stream - WinRT StorageFile 写入下载的文件
我正在努力解决一个简单的问题。我想使用以下代码从网络下载图像:
现在我想在 StorageFile 中编写 WebResponse 的流(例如,在应用程序的存储中创建一个文件 id.jpg),但我还没有找到任何方法来实现这一点。我在网上搜索它,但没有成功 - 各种方式不兼容的流类型等等。
能否请你帮忙?
c# - 在 WinRT 中(更新 ModifiedTime)中“触摸”文件的优雅/高性能方式?
在(更新 ModifiedTime)WinRT 中“触摸”文件的优雅/高性能方式?
我有一些代码需要删除超过 30 天的文件。这很好用,但在某些情况下,我需要更新文件上的时间以重置 30 天窗口,并防止删除。在 basicProperties 列表中,ModifiedTime 是只读的,所以我需要找到另一种方法来更新它...
方法一:重命名两次
方法二:修改文件属性
方法 3:通过 P/Invoke 使用 Win32 API?
- 不确定这是否适用于 ARM 设备?
- 通过认证?
- 表现出色?
- 有没有最好的方法来做到这一点?代码示例?
有人有其他想法吗?我有点卡住了:-)
非常感谢,乔恩
windows-8 - WinJS / WinRT:检测损坏的图像文件
我正在构建一个从本地图片库加载图片的 Win8/WinJS 应用程序。一切通常都可以正常加载有效图像并在列表视图中显示它们。
现在我需要检测损坏的图像并为这些图像禁用部分应用程序。
例如,打开一个文本文件并在其中输入一些文本。将文件另存为 .jpg,这显然不是有效的 jpg 图像。由于 .jpg 名称,我的应用程序仍会加载文件,但现在我需要禁用应用程序的某些部分,因为图像已损坏。
有没有办法检查我加载的给定图像是否是有效的图像文件?检查它是否损坏?
我正在使用标准 WinRT / WinJS 对象,如 StorageFile、Windows.Storage.Search 相关对象等,根据搜索文件类型加载我的图像列表。
我不需要从搜索结果中过滤掉损坏的图像。在有人在 ListView 中选择图像后,我只需要能够判断图像是否损坏。
c# - 如何在 Windows 应用商店应用程序中维护 StorageFile over Shutdown 事件?
问题
如果用户使用 FileOpenPicker 为我的应用程序提供一个文件,是否有可能,如果可能,我如何在应用程序生命周期的关闭过程中保留对该文件的引用?
问题
我不能使用功能提供的编程访问,因为文件可以(并且很可能)从文件夹功能提供访问权限之外的位置打开。
这个例子
我正在构建一个文本文件编辑器,我可以在挂起时保存内容并在启动时恢复它,这不是问题。问题是用户打开文件并且可以在任何时候点击保存以在没有提示的情况下保存,因为我在私有字段中保留了对 StorageFile 的引用。如果应用程序关闭,似乎没有办法在不提示用户的情况下再次获取该 StorageFile。
Windows 应用商店应用详细信息
生命周期
在 Windows 应用商店应用程序中,当用户离开应用程序时,应用程序将暂停,如果机器内存压力,它将被关闭。模式是在挂起时保存(因为无法处理关机),然后通过加载保存的数据在下次启动时恢复。
从文件中读取数据
在 Windows 商店应用程序中,有两种访问文件的方法 - 让用户使用FileOpenPicker向您提供文件,或者您可以选择加入对某些文件夹进行编程访问的功能。
windows-8 - 我是否需要在 Windows 8 应用程序中调用 CachedFileManager.DeferUpdates
在文件选择器 Windows 8 示例中,文件保存如下:
我将一个对象序列化为 XML,所以这样做略有不同:
无论有没有 CachedFileManager(上面注释掉),它都可以工作。
所以,我应该包含 CachedFileManager 吗?如果我使用它,我是否以正确的方式保存文件。
此代码可以正常工作并很好地保存文件,但我不喜欢包含我不理解的代码。
windows-runtime - 将较短的流写入 StorageFile
我有一个包含 XML 的 StorageFile。我从 StorageFile 读取 XML,然后对其进行编辑,然后使用以下代码将其再次保存到 StorageFile:
但是,当我使内容更短时,例如从
至
磁盘上的结果如下:
显然,Stream 只在文件中写入新字节,而旧字节完好无损,从而导致下次我尝试打开它时 XML 无效,所以这可能不是正确的保存方式......
我应该如何保存它?
serialization - 无法在 WinRT 单元测试中打开文件
我正在编写一个单元测试来验证对象的序列化,并且我能够成功保存文件而没有任何问题。我什至可以浏览文件并验证内容是否正确。但是,当我尝试打开文件进行阅读时,我总是收到 UnauthorizedAccess 异常。
这是用于保存项目的代码:
这是用于恢复项目的代码:
和单元测试:
我可能遗漏的任何想法或故障排除步骤。单元测试应用清单包括以下功能:文档库、Internet(客户端)。以下声明已到位:文件打开选择器、文件保存选择器和文件类型关联。
谢谢!
xaml - Access Denied when deleting image file previously used in DataTemplate in WinRT
I have image (PNG) files used by my GridView as part of its DataTemplate. If I try to delete a specific object row in my GridView, I would delete the related image file for that row as well. The images are different for every item on the list.
I'm using this code to delete the image file
The image file is rendered on the GridView under the GridView's DataTemplate. So in each object model in my List, I have a public property there that returns an ImageSource for my DataTemplate.
I'm calling my delete procedure right after i deleted the object row from the List and after the GridView has been refreshed of the new List items.
Even though the List does not contain the object (consuming the image) anymore, the app throws the Access is Denied exception if i try to delete the file. While the app is running, if i try to delete that particular file manually (through file explorer), it won't allow me too.
I tried clearing all unused objects in my app, even setting the GridView's ItemSource to null and the List to null before I delete the image. Still the exception persist.
Thanks in advance.
c# - 带有搜索模式的 StorageFolder.GetFilesAsync() 方法?
在常规 .NET Framework 中,有许多方法可以根据搜索模式检索目录中的文件子集,例如DirectoryInfo.GetFiles(string searchPattern)。
Windows Store应用有对应的方法吗?适用于 Windows 应用商店应用的 .NET不包含Directory
或DirectoryInfo
类,并且Windows API中的StorageFolder.GetFilesAsync重载都不支持搜索模式。