想做微信聊天记录和输入法配置的多端同步。但是有一些文件在程序未退出时总是处于被使用状态无法同步。但是这个文件又可以复制到别的地方。很奇怪 windows 的文件占用机制是怎样的?如果 onedrive 不能上传,那为什么可以复制呢?
1
AoEiuV020CN 2022-06-23 17:10:47 +08:00
感觉上,文件并没有上读锁,也就是 windows 是允许读取这个文件的,
但是 oneDrive 比较自律,自己判断这个文件被占用,不管上没上锁,被占用就不上传, |
2
AoEiuV020CN 2022-06-23 17:12:15 +08:00
我估计 oneDrive 上传过程会自己给文件上锁,上了锁其他进程就访问不了了,担心影响你的工作所以才反过来,有其他进程访问就不上锁,不上锁就不上传,
|
3
123go OP @AoEiuV020CN #1 如果有读锁的话,连复制也不可以了是吧~
|
4
playtomandjerry 2022-06-23 17:14:40 +08:00
onedrive 老问题都特么不修, 一个文件名有些符号的问题死活处理不了 服了
|
5
Cheons 2022-06-23 17:18:10 +08:00 via Android
MS:备份是备份的价钱,同步那就是另外的价钱了。
🤔 |
6
123go OP @AoEiuV020CN #2 那它上传为什么要加锁呢,检测到文件被使用,就停止好了唉~
|
8
leeg810312 2022-06-23 18:30:47 +08:00
文件复制是产生一个新文件,也就是备份,是一个单向操作,可以不管当前文件的读写,当然是允许执行的。同步和备份是不同的,需要同步的 2 端数据完全相同,也就是双向的。Onedrive 发现网上的文件较新,那么就需要写到本地,这时本地是打开状态,怎么写入呢?
|
9
arch9999 2022-06-23 18:49:30 +08:00
你整一个不能被复制的文件给我看看。
|
11
123go OP @leeg810312 #8 同步我不可以理解为从设备 1 复制到服务器,再下载到设备 2 吗?
|
12
lifansama 2022-06-23 19:09:58 +08:00 via Android
我现在用 GoodSync 把微信接收到的文件传到 OneDrive 里
如果配置文件不大又恰好有一台常开的设备的话不如试试 syncting😂 |
16
yyfearth 2022-06-24 02:49:54 +08:00
|
17
ShareDuck 2022-06-24 08:56:05 +08:00
我觉得 OneDrive 不上传 “正在修改中” 的文件是很正常的逻辑吧。如果文件上传到一半,文件的前面部分修改了怎么办?
|
18
123go OP @yyfearth #16 是包括写入,如果两边都同时上传较新的文件,那就涉及到冲突情况解决机制了。但是我的问题是,“为什么不复制到远程服务器”
|
20
yyfearth 2022-06-24 09:58:17 +08:00
@123go 这个只能问 OneDrive 的开发了
估计要么是他要锁这个文件(不管是什么锁) 但是文件已经有锁了 没办法再加锁 所以报错 要么是他不区分上传还是下载 统统给读取和写入锁 因为没办法上写入锁 所以失败了 |
23
nothingistrue 2022-06-24 12:04:37 +08:00
文件占用不影响复制,那种不能复制的文件,要使用黑科技或骚套路才能搞出来的。
|