我正在考虑编写使用filesize作为预测试来测试两个文件是否等效的软件。如果简单的文件大小整数比较失败,则无需应用复杂的文件内容比较。该软件将以golang编写(第一篇),但我认为这个问题实际上归结为stat syscall,因此与语言无关。
我一定需要一个独立于平台的解决方案。它必须跨所有系统和文件系统工作。我可以确定文件内容在所有文件系统中都是相同的字节序列,但是文件大小呢?
如果我将文件从一个文件系统传输到另一个文件系统,是否可以确保在另一个文件系统上获得相同的文件大小?
[当然,我不在乎文件元数据。这显然是不一致的。我只关心内容的大小]
答案 0 :(得分:2)
是的,st_size
在所有文件系统中都应该相同(至少是与posix兼容的)。一个字节毕竟是一个字节,无论您将其存储在何处。但是,所消耗的磁盘空间可能会有所不同,具体取决于文件系统的基础块大小。