如何更改Dropbox的同步文件夹?

Posted starrow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改Dropbox的同步文件夹?相关的知识,希望对你有一定的参考价值。

使用Dropbox的朋友,估计很多都有过移动同步文件夹到另一个位置的想法。这本是一个正常的需求,Dropbox也自带该功能,但使用起来失败的可能性却极高。我遇到的错误提示是有些文件无法移动,请将打开这些文件的程序关闭或者选择新的目的文件夹。经过百折不挠的努力,我终于将同步文件夹转移到另一个硬盘上。总结出下列解决办法,希望对遇到同样现象的朋友有帮助。

总结

遇到某些文件无法移动错误的朋友,采取以下措施中的一条或几条,可以解决。

1. 确保新的同步文件夹不在移动存储器上。

2. 确保目的存储器容量充足。

3. 确保同步文件夹中不包含快捷方式。可以在文件管理器中输入type:lnk来搜索。

4. 确保同步文件夹中的文件和文件夹没有被其他程序打开。可以使用Process Explorer工具来检查。

5. 确保运行Dropbox的账号对原文件夹的所有内容有删除权限,在新文件夹内有写权限。可以利用文件夹属性对话框安全页面的工具或者命令行工具检查和修改权限。

6. 尝试取消关联账号,再登录账号,直至能设置同步文件夹。

总而言之,对Dropbox来说,移动同步文件夹的功能存在设计缺陷和bug(我用的版本是73.4.118,根据网上反馈,很多网友都遇到过类似的问题,所以该缺陷是长期存在至今未被修复的。)。对于上述第2至5条措施针对的失败原因,Dropbox应该给出具体提示,而不是用一个笼统的错误消息,导致用户很难排查。在第1至5条措施都无效的情况下,第6条措施实际证明Dropbox该功能上的bug。

经过

下面是我自己遇到和解决该问题的来龙去脉,写下来,既记录了若干技术细节,也是为了纪念自己的一次辛苦终有回报的经历。

如果将写程序和写书比作跑步,前者可能是短跑中跑长跑,后者则是马拉松。在近一年的时间内,一个不断增长的word文档是写书的唯一成果,因而保证书稿的安全就尤为重要。备份到其他硬盘或者云端是一个好的方法,但是书稿几乎每天都会变化,定期或实时备份或者麻烦或者奢侈,最直接的保障还是存储文件的硬盘的健康。

这两天忽然意识到我的两块硬盘都用了10年左右了,上网查硬盘的寿命,用HD Tune等工具一检测,发现累计通电时间虽然只有三年多,但是各有病症。一个日立500G的重映射扇区数为2,一个西数500G的等待重映射扇区数为2000多,无法修复扇区数为10。根据相关指标的含义,日立的健康值得警惕,西数简直就是生命堪忧了。

事态严重,我急忙将用作启动盘的西数上的数据备份到状况稍好的日立硬盘上,再考虑买一个固态硬盘,体验一下传说中的飞速。固态硬盘刚推出的时候,虽然工作原理改变带来的性能优势很诱人,价格却拒人于千里之外。时过境迁,现在固态硬盘的价格已经下降到与当年传统硬盘同样的水平。其他文件的备份都是简单复制,唯有备份文稿需要一点技术。文稿保存在Dropbox的同步文件夹内,偶尔会同步到云端,现在需要先转移到日立硬盘上。

Dropbox有移动文件夹的功能,可是操作时提示有些文件无法移动,请将打开这些文件的程序关闭或者选择新的目的文件夹。查Dropbox的官方帮助,移动文件夹出错的可能原因包括:不支持移动存储器;目的存储器容量不够;原文件夹或新文件夹权限不足;文件夹包含文件链接;文件夹中的某些文件被其他程序打开了等等。

文件夹要移动到的硬盘上空间充足,该硬盘也不是用USB连接的外部存储器。Dropbox的帮助很保守地说同步文件夹最好位于启动盘上,以确保Dropbox可以访问,我尝试了,还是会出现同样的错误。权限不足似乎也可以排除——Dropbox是用系统管理员账号运行的,该账号在原文件夹和新文件夹上都有完全权限。

文件夹包含文件链接?我记得确实有一个快捷方式,但删除后问题依旧。为了查找该文件夹中是否还有其他快捷方式,我使用windows 7文件管理器右上角的搜索功能,搜索框提示有Date modified和Size两种文件属性搜索,我尝试输入type:,果然提示可以进行按类型搜索。经过几次试验,我发现有趣的是,类型既可以输入文件的扩展名,也可以输入文件列表中类型列显示的描述性名称的一部分,例如对于C Sharp源代码,既能使用cs,也能使用source。但这种灵活性也有例外,比如png图片文件类型的描述性名称为ACDSee Photo Manager 12 PNG Image(当然是由于在我的电脑上该类图片的默认打开程序被设为ACDSee Photo Manager 12),却只能用png找到。前面提到的快捷方式是一个文件夹的,没有像文件一样显示扩展名,只是在类型列显示了Shortcut,用该名称却搜索不到。Google之后,我用快捷方式的扩展名lnk来搜索,在同步文件夹中仍然没有找到,这一点原因可以排除了。

文件夹中的某些文件被其他程序打开了?桌面上并没有诸如word的程序打开了同步文件夹中的文件。把可见的和任务管理器中的程序检查一遍,没有发现。即使将可能的windows文件管理器关闭,问题也依旧。Dropbox论坛的工作人员提到有专用的软件可以检查某个文件被哪些程序打开了。Google之后发现是以前我用过的强大工具Process Explorer,它有一个功能叫做Find handle or DLL,顾名思义,可以查找对某个文件持有句柄或内存中加载了某个DLL的程序。我试了一下,对路径也适用,这样就可以查找一个文件夹下所有文件被打开的情况。结果是同步文件夹内的文件没有被其他程序打开的,文件夹本身被Dropbox持有句柄,以及在windows文件管理器打开过该文件夹的情况下(哪怕已不是当前文件夹),被文件管理器持有句柄。这一点原因也排除了。

官方的帮助都无效,我思考自己的应对方法。目标其实很简单,就是要让Dropbox与另一个文件夹同步。文件夹的内容可以手工复制,关键是如何让Dropbox绑定新的文件夹。我尝试取消关联Dropbox账号,相当于网站的登出,然后再次关联账号,看能否修改同步文件夹的位置。结果一旦关联账号,Dropbox就恢复绑定原文件夹。再次失败。这样可以推断同步文件夹的信息是保存在服务器上的,可是我在Dropbox网站的设置里也没有找到。

只能继续Google,许多遇到同样问题的用户提到的解决办法是先使用Dropbox的选择性同步功能,再转移文件夹,最后恢复成全部同步。我尝试选择性同步,看软件的提示说未被选中的文件会从电脑上删除,相当于全部文件保存在云端,被选中的部分下载到电脑并进行同步。于是我选择取消所有文件的同步,很快同步文件夹清空了——除了在多层子文件夹中的一个文件。研究之后发现,该文件被设置了只读属性。真相大白。Dropbox移动同步文件夹时,需要删除原文件夹所有的内容,遇到一个无法删除的只读文件,自然会失败。这也是帮助里说需要确保对原文件夹和新文件夹都有完全权限的原因。

我取消了该文件的只读属性,试图移动时还是出现同样的错误。或许需要再同步一次,将该文件也从电脑上删除。为了触发同步,我选择该文件所在的父目录。结果该目录中的内容被下载到电脑中,但是电脑中原来遗留的该文件所在的文件夹显示为选择性同步的冲突。细想这也可以理解,上次同步后Dropbox认为云端拥有所有文件,电脑上没有任何文件,这次将选中的文件下载到电脑时发现其上还有一套文件夹和文件,就将它们视为冲突,并且也保存到云端。我再次选择取消所有文件的同步,结果只剩下一个冲突的文件夹——不知为何,Dropbox新建的该文件夹又被设置了只读属性。取消该属性,再经过两轮同步,终于将原文件夹清空。可是,移动文件夹时同样的错误依然挥之不去。这个时候我还发现为了访问方便同步文件夹有几个子文件夹被添加到windows文件管理器左边导航栏中的图书馆(Libraries)中,它们现在指向的位置已经不存在了。将这些可能导致错误的条目删除后,依旧失败。

我几乎绝望地再次尝试取消关联账号,这次重新关联后情况大异。Dropbox提示已经关联过了超过三个设备,要么升级账号,要么删除关联的设备。在关联设备的历史里,最近的一条是当前我的电脑,更早的两条也是这台电脑,其中一条从时间上看就是我稍早取消关联账号导致的,最早的第四条则是另一台电脑。看来每次关联账号Dropbox都视为一台新的设备。我删除掉最早的记录,继续登录的过程,Dropbox就像全新安装一样弹出设置的提示框,关键是原同步文件夹的信息已经不在了,我选定新的文件夹,完成设置,终于成功。最后恢复所有文件的同步,将它们下载到电脑上。

以上是关于如何更改Dropbox的同步文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

从 python 脚本上传文件到我的 Dropbox

更改 LAMP 文件夹的文档根目录

使用与 C# 的互操作,Excel 保存更改的原始文件。如何否定这一点?

在 Android 应用的帐户和同步菜单下显示设置

在 ubuntu linux 中同步 dropbox 和 xampp htdocs,不包括临时文件

如何访问dropbox