使用 CreateFile() 将文件添加到 Onedrive

问题描述

我正在使用一些软件在文档上创建锁定文件,以管理文档在网络驱动器上的并发编辑。这一切都正常工作。该文件的创建方式(例如)如下:

HANDLE fh = CreateFile(myFileName,GENERIC_WRITE | GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_norMAL,NULL);

其中 myFileName 是要创建的文件的路径。

但是,如果文档位于 OneDrive 上,则新创建的锁定文件不会同步到此共享存储。它对创建者可见,但在文件句柄关闭之前,其他任何人都无法访问该驱动器。

出于兴趣,我仅使用 GENERIC_READ 和 FILE_SHARE_READ 运行 CreateFile()(即:没有写入参数),文件被创建并立即同步。

有谁知道这是设计使然吗?即:如果一个进程有一个文件的打开句柄并且有写访问权限,那么 OneDrive 就不会同步并且没有办法解决这个问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)