我正在编写一个应用程序,将ruby(文件A)中序列化的数据转换为xml格式(文件B)。 为了避免重新转换未更改的文件,我已经添加了修改日期检查:如果文件A中的最后一次修改比文件B中的最后一次修改旧,我们可以避免新的转换。
UNF。某些文件A被覆盖但保留相同的内容。这使得转换过程徒劳无功,我想避免它。
我在考虑在磁盘上存储最后转换后的文件A的哈希,然后在转换之前我可以检查文件的哈希值是否已经改变。
有没有办法在ruby中轻松创建这样的哈希码?
答案 0 :(得分:5)
require 'digest/sha1'
Digest::SHA1.hexdigest(File.read("/a")) # => "da39a3ee5e6b4b0d3255bfef95601890afd80709"
答案 1 :(得分:0)
你的文件有多大?
如果它们不那么大,每次更新文件B时,都可以将文件A的副本写入文件C.
如果要再次更新文件B,请对文件A和B执行差异,如果它们不同,则更新文件B.
答案 2 :(得分:0)
还有其他解决方案:
重写序列化文件并在顶部插入注释,或者只是在末尾添加注释,将其标记为已经转换
转换后将文件移至子目录