c++ - 使用 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 根本不会同步,并且没有办法解决这个问题。
解决方案
推荐阅读
- excel - 为什么这段代码会导致无限循环
- android - getSupportActionBar 上的 NullPointerException
- ios - 文件提供程序扩展在 iOS 13 上不起作用
- javascript - 为动态计算/瞬态状态实现 getter
- kubernetes - 节点池集群未自动缩放
- batch-file - 有没有办法回显所有驱动器/分区的列表,例如 C:\ D:\ E:\ 等,并提示用户选择其中一个来执行某些功能?
- angular - 在 Angular 中获取 URL 参数
- magnolia - 查找节点是否为子 magnolia CMS
- php - 在刀片 laravel 中使用连接
- python - 其他语句导致基本字数计数程序中的无限循环?