问题标签 [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.

0 投票
1 回答
747 浏览

c# - 如何在通过 OneDrive 更改 StorageFile 时收到通知?

我有一个声明自定义文件格式的基本 UWP Windows 10 应用程序(在 PC 上运行)。用户可以打开和编辑该格式的文档(例如,很像在 Word Mobile 中打开 .docx 文件)。

我的问题是这样的:假设用户使用我的应用程序从 OneDrive 打开一个文档,并且该文档在另一台设备上进行了修改。我的应用程序如何获得有关更改以重新加载文档的通知?

额外的问题:) 如果在本地和同时在另一台设备上修改文件时发生冲突怎么办?

在内部StorageFile,我使用从 a 获得的 aFileOpenPicker来阅读文档。

我查看了StorageFolder.CreateFileQueryWithOptions(...),但我无法获得对 StorageFile 父文件夹的引用,因为我的应用程序只有读取文件本身的权限,而不能访问父文件夹。

我可以定期轮询文件的修改日期,但这似乎远非理想......

0 投票
2 回答
493 浏览

c# - 如何检测 UWP 应用中的 StorageFile 是否被重命名或删除?

对于 Windows 应用商店应用程序:我如何检测StorageFile在我的应用程序中打开时是否在我的应用程序之外重命名或删除了它?

我在桌面上运行了一个 Windows 10 UWP 应用程序。该应用程序允许用户打开和编辑文档。

我尝试过的事情:

  • 检查 DateModified
    • 我尝试检查storageFile.GetBasicPropertiesAsync().DateModified,但即使删除文件并清空垃圾箱,调用也会成功返回 (old) DateModified。(我假设它使用内存版本并且不检查磁盘上的文件)
  • 重新打开 StorageFile
    • 然后我尝试使用StorageFile.GetFileFromPathAsync(file.Path). FileNotFoundException这是第一次正确抛出。
    • 然而,后来这失败了,但有一个Unauthorized access/permission denied例外。这有点道理,因为我需要用户在 FileOpenPicker 中选择文件才能让我的应用程序获得使用它的权限。
  • 监控父文件夹:
    • 这个没有走多远。我尝试使用StorageFolder.CreateFileQuery(),但无法从 StorageFile 实例访问父文件夹(同样,这是有道理的,因为我的应用程序无权访问父文件夹)
0 投票
1 回答
92 浏览

javascript - 将 StorageFile 端到端读入字符串的最简单方法?

我有一个StorageFile我试图读入字符串的对象(出于调试目的)。最简单的方法是什么?

0 投票
0 回答
160 浏览

c# - StorageFile System.DateAccessed 的日期错误

我有一个在 Windows 10 上运行的基本 c# UWP 应用程序。

我正在尝试获取这样的最后访问时间StorageFile

但是,我得到的日期是错误的。过去太远了。

如果我查看 Windows 资源管理器或命令行中的属性,日期是正确的,并且每次在我的应用程序中打开文件时都会更新。

只有在我的应用程序中,最后一次访问时间是错误的。我是在尝试访问错误的属性,还是有其他方法可以获取最后一次访问时间?

更新

事实证明,它File.GetLastAccessTime(file.Path);确实返回了命令行上报告的正确时间。我选择了 StorageFile 路线,因为该应用程序是沙盒化的,并且之前没有尝试过基于路径的 API。

以上所有假设首先将文件系统设置为跟踪上次访问日期。

0 投票
2 回答
80 浏览

c# - 为什么只能更改一次 BitmapImage 源?

拜托,需要帮助。在这段代码中必须是愚蠢的错误,但它是什么?如果我运行这个非常简单的代码,我只能加载和更改一次位图图像。第一次运行正常,但如果我想再次更改图像(按下按钮),第一张图像仍然存在。为什么?

XAML

代码

此代码没有任何额外检查。这意味着图像“ProfilePicture.jpg”必须在运行应用程序之前位于文件夹中。代码在第一次运行时运行良好,但在第二次运行时(再次按下按钮并选择新图片)即使文件夹中的源更改也无法更改屏幕上的输出。

0 投票
1 回答
182 浏览

c# - 在 UWP C# 中验证文件写入

我试图确保将文件复制到另一个位置 - 出于 SQLite 的原因(请参阅文档库中的 UWP App SQLite Access 数据库)。

麻烦的是,如果我删除对目标 StorageFile 的访问(即拔出 USB 记忆棒然后尝试保存),如果文件写入失败,StorageFile 的 CopyAndReplaceAsync 方法将不会提及。

因此,尝试打开文件以测试它是否已成功写入(使用 GetFileFromPathAsync)会引发 COM 异常(因为该文件不存在),但即使在捕获错误后它也永远不会结束任务。

我试图弄清楚是否有更好的方法来做到这一点-我尝试使用 FileIO 来做同样的事情,但即使我正在编写的文件在 FutureAccessList 中,它似乎也不想授予访问权限.

我没有正确使用的任何想法/并发症/方法?

我拥有的相关代码如下:

0 投票
1 回答
191 浏览

c# - StorageFile => Image 的 ValueConverter

我正在尝试将 MVVM 用于通用 Windows 项目,但存储文件的接口对使用异步有很多抱怨。以下代码有时有效:

在我选择要加载的新图像之前,我会收到错误“{”应用程序调用了一个为不同线程编组的接口。(来自 HRESULT 的异常:0x8001010E (RPC_E_WRONG_THREAD))“}”

所以我尝试将其更改为在另一个线程中使用 CoreDispatcher:

位图图像上的 NullReferenceException。当然,这对我来说绝对有意义 - 异步调度程序将控制权交给父进程,尚未分配图像,空引用异常。但我不知道正确的方法是什么!

0 投票
1 回答
242 浏览

c# - 创建和删除文件夹。将文件移动到文件夹并将文件移动到文件夹外部

有一个包含文件和文件夹的gridview。我想如果用户单击“添加文件夹”,那么它将使用用户想要的文件夹的名称创建一个文件夹。用户还可以通过选择“移动到文件夹”来将文件移动到所需的文件夹中,以放置用户想要的文件夹(显示的菜单文件夹名称可用,菜单也被取消)。用户还可以将文件夹中的文件移出文件夹。用户还可以删除可用的文件夹(如果文件夹中没有可用的文件)。

如何申请?有没有参考或样本?

0 投票
1 回答
426 浏览

c# - C# StorageFile 图像大小调整为一定的字节数

我已经在 Stack 上阅读了很多关于调整图像大小和降低质量的帖子,但没有一篇是关于降低某些物理磁盘空间的质量

我有一个拍照的代码:

现在我需要将数据发送到服务器,但在此之前,我需要确保照片不超过 3 MB。

所以我这样做:

所以问题是关于 ELSE 块

有没有更好的方法,或者我错过了一些通过降低图像质量来将图像放入一定数量的兆字节的内置方法?

因为这样做:

真的不好看

0 投票
3 回答
313 浏览

c# - 比较两个对象列表在 C# UWP 中

我正在尝试根据更新时间(保存在数据库中)下载基于服务器的文件(PDF)。在下载之前,我想将它们与本地机器上的现有文件列表进行比较。问题是比较对象字段给出了错误的输出。

这两个文件都是基于 json 的文件,在下面给出的“ITEMS”对象中解析。我正在使用带有 C# 的 Visual Studio 2015。后端是 Laravel REST。

这就是我解析服务器和本地列表(均为 JSON)的方式:

我正在使用 foreach 循环来检查 updated_at 字段是否相等