微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何自动对“云”文件 (OneDrive) 进行无、部分和完全水合以进行测试?

如何解决如何自动对“云”文件 (OneDrive) 进行无、部分和完全水合以进行测试?

我想测试一些软件,并想让它在云文件方面表现得很好。为了查看遍历文件夹层次结构时返回的信息,引入了 RtlIsPartialPlaceholderRtlIsCloudFilesPlaceholder 等参考函数。上面的链接指向内核模式文档,但这些函数也存在于用户模式(ntdll.dll)中,并且它们的实现非常简单。

但是,为了测试所述软件,我必须能够以某种方式创建 OneDrive 上文件的占位符可以处于的状态。

我可以使用哪些函数注册的 COM 类也可以)来自动创建可重现的测试设置,我可以使用它:

  1. 创建占位符
  2. 部分补水占位符
  3. 对目录文件实现相同的

PS:this question 是唯一一个远程连接到该主题主题,我可以在 SO 上找到该主题

解决方法

标准文件/目录操作(创建/读取/写入等)可以使用 Win32 API 透明地实现。这就是这项技术的全部意义所在。

因此,您可以使用标准 Win32 API 创建占位符。

如果您在“同步根”(如 OneDrive 案例中的 OneDrive 文件夹层次结构中)创建文件或目录,关联的同步引擎进程(如 OneDrive.exe)将确保该文件或目录是占位符。而且你不能在同步根层次结构之外创建占位符,AFAIK。

对于一个文件(不能对目录进行水化或脱水),读/写对应于水化。请注意,即使最终用户 API(应用程序)只请求了一些字节,一些同步引擎(和/或取决于它们的配置)可以决定始终完全水合文件。

虽然有一些特定的 Win32 API 用于特殊操作。

您可以使用 CfDehydratePlaceholder 脱水文件。您可以对文件 CfHydratePlaceholder 进行水合。对于所有 Cloud Filter API,在创建目录句柄时,不要忘记使用 FILE_FLAG_BACKUP_SEMANTICS 标志。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?