故事:我最近开始尝试 DropBox。经过一番尝试,我发现我可以使用一个应用程序,DropBoxFolderSync,将文件夹与 DropBox 同步,在上一个文件夹位置留下一个称为“符号链接”的东西(看起来类似于编程中的指针)。
听起来不错,而且我总是可以将真实文件从 DropBox 中复制回来,因此我在编程项目文件夹中使用了它——拥有异地存储总是好的。
不过,拥有本地备份总是好的,因此我之前将 C:\ 分区上的 Projects 文件夹放到了 D:\ 分区上的 Briefcase 中。
总结一下:
项目文件夹已备份至公文包。
做了一些工作,决定尝试一下 DropBox。
使用 DropBoxFolderSync 将项目文件夹同步到 DropBox;留下符号链接。
然后,我更新了公文包,因为自从上次更新以来,我又做了一些工作。一些文件被复制过来了。
文件夹列表:
项目文件夹:“C:*\Visual Studio 2010\Projects”(包含符号链接)
DropBox 项目文件夹:“C:*\DropBox\Projects”(包含实际文件)
公文包:*D 盘上的“Backups\Visual Studio 2010 Projects”(引用项目文件夹)
现在,我的问题是:公文包会累积符号链接还是实际文件?也就是说,用编程术语来说(因为这是我所知道的),它会复制指针还是引用的值?
答案1
它将复制文件(引用的值)。这是硬链接的默认行为。从技术上讲,这些不是符号链接。
要复制硬链接(如果它们指向文件夹而不是文件,则 NTFS 将它们称为连接点),您必须明确调用 CreateHardLink 函数。您可以放心地假设任何不明确了解硬链接的程序都将始终复制“引用值”。
顺便说一句,符号链接的不同之处在于它们实际上是一个保存目标路径的文件。
编辑
对于正在读书的书呆子来说……
NTFS 中的硬链接和连接 http://msdn.microsoft.com/en-us/library/aa365006(v=VS.85).aspx
对符号链接执行不同函数的结果 http://msdn.microsoft.com/en-us/library/aa365682(v=VS.85).aspx