就是不存储所有文件的全部内容,
只对一个基准文件全部存储,其它文件存储差异部分,
针对文本/二进制文件分别如何实现?
或者提供一点线索,俺对这块没有经验

解决方案 »

  1.   

    挺复杂啊,我试了下用ultraeditor打开一个文件,然后做点修改,再保存,它默认会另外保存一个.bak文件,其实就是修改前的文件,而不是差异数据。如果基准文件内容可以解析成对象,其他的可以存字段上的差异啊。文件比较器还是蛮多的,ultraeditor、beyondcompare都可以,找找看有没有开源的吧,借鉴下思路。
      

  2.   

    基于行作比较,这样一个文件实际上就是一个行的序列:line1line2line3line4line5
    再写一个用来比较两行的方法:compare(Line line1, Line line2)
    想象一下比较这两个字符串的时候是怎么做的abcde 和 cvbnm,把需要判断两个字符串是否相等的地方换成compare()方法以上思路仅供参考
      

  3.   

    基于行作比较,这样一个文件实际上就是一个行的序列:line1line2line3line4line5 
    再写一个用来比较两行的方法:compare(Line line1, Line line2) 
    想象一下比较这两个字符串序列的时候是怎么做的abcde 和 cvbnm,现在换成比较两个行的序列,需要判断两行是否相等的地方换成compare(Line line1, Line line2)方法 以上思路仅供参考 
      

  4.   


    如果可以具体到一类文件,确实比较好处理了,
    但是对一个普通的2进制/文本文件来说,有什么算法可以实现?
    比如svn对于文档版本的保存,是怎么做的?谁能提出一个可行的思路,或者有较成熟的开源库?btw: 5楼你家mm很可耐丫~摸摸