2

NSFileManager方法是否contentsEqualAtPath:andPath:创建动态校验和来比较两个文件,它是打开文件头并比较文件头详细信息还是使用其他方法进行比较?

我有一个包含 200,000 个左右文件的列表,用于比较本地文件与远程服务器卷上的文件的比较位置。本地文件将在过去的某个时间从远程服务器卷复制,我将遍历文件列表以比较每个文件,然后将任何较新的文件从远程服务器卷复制到本地计算机(覆盖任何现存的)。不能保证远程服务器文件是由本地用户创建的(而且很可能不会)。

由于文件很小(大约 4K 大小),复杂的文件比较操作可能需要几乎与复制操作一样长的时间。

此操作可能(可以想象但不太可能)在用户会话中多次发生,因此我需要确保我使用的是最有效的检查方法。

操作本身将在单独的线程上运行,因此在操作完成时我不会遇到捆绑用户的问题。

我已经开始实施以对此进行测试,但很想看看其他人是否有过快速比较数千个文件的经验,以确定如果存在较新的文件,哪些文件需要更新。如果你有,你有什么要避免的提示或陷阱吗?

非常感谢任何建议。

更新

再考虑一下,保留一个跟踪任何更改图像的最后更新时间戳的文件并保留一个执行相同操作的本地文件并比较这两个文档可能会更有益......随着我的进步,将更新更多。

4

1 回答 1

1

在我看来,对于目录,仅比较文件名(和子目录的文件名)。如果您将文件路径显式传递给该方法,它只会比较文件内容。

于 2010-10-05T18:11:32.127 回答