【发布时间】:2019-10-01 12:12:08
【问题描述】:
我们的定制软件在 Microsoft OneDrive 锁定和同步正在使用的文件的方式上存在问题。因此,我们决定不支持云保存文件。这个想法是,当用户将加载或保存指向同步到云的位置时,弹出窗口会通知他们它不受支持。
我的问题是识别所述位置。虽然最简单的方法是查找文件夹名称“OneDrive”,但我觉得这并非万无一失,因为文件夹的名称可以更改。
我考虑过检查文件是否具有“可用性状态”,因为如果文件在云中、本地或启用同步,它会在资源管理器中显示。 不幸的是,除了视觉之外,我找不到任何方法来检查该状态,因为我无法在注册表、命令提示符甚至事件日志中手动找到对该功能的引用。
示例图片:
是否有类似attrib 命令的命令或方法来找出文件或文件夹的这种状态?万不得已,或许Powershell可以解决我的问题?
编辑:
Gerhard Barnard 的解决方案对我有用。这是一个视觉效果。
(感谢编辑们将这些链接变成图片,同时我积累了足够的分数让 SO 信任我)
https://i.imgur.com/VSGvSKD.jpg
https://i.imgur.com/P5reVIC.jpg
这也可以使用attrib。
https://imgur.com/Yejeb4r
正如 aschipfl 所述,这些功能可能在您的系统上不存在,原因未知,因为 Microsoft 的文档似乎已过时,但测试正在进行中。
EDIT2:
我相信要使这些功能可用,您应该安装 OneDrive。它通常从 C:\Users[用户名]\AppData\Local\Microsoft\OneDrive\OneDrive.exe 运行。我正在考虑在保存和提示我的用户之前简单地查找此文件而不是检查文件夹内容。
【问题讨论】:
-
@MathiasR.Jessen 谢谢!这可以作为最后的手段,但是由于它是第三方的,因此实施起来会很痛苦。我更喜欢在可能的情况下首先使用 Windows 内置功能。
-
它可能不需要“内置”,因为 OneDrive 会安装资源管理器扩展。您在那里看到的整个视图可能是使用 OneDrive 扩展功能构建的,而仅 功能和库实际上不可能做到。
-
正如 Lasse 所说,这些整体可能是 OneDrive API 的一部分,尝试在那里寻找它们?
-
@phLOx 我现在还没有系统可以检查,但是当您检查不属于 onedrive 的目录上的该属性时会发生什么?这些文件是仅列为“在此设备上可用”还是“离线可用”?我的系统没有一个驱动器在运行,但它确实有可用性标签,并且它将我在任何给定目录中的所有文件显示为“离线可用”
标签: windows powershell batch-file onedrive