个人存档还是尽量避开 office 格式吧

也许下面要说的很多人都知道了,但我真是才刚知道,分享一下。

事情是这样的:

其两天看了帖子《 -作为存档格式 rar 有没有替代品 -有》,我用 doc 文件测试了一下 multipar 的恢复功能,好几次都没成功。具体过程是这样:

  1. 给一个 doc 文档创建恢复用的 par 文件。
  2. 删除 doc 里几个字母;之后用 multipar 显示无法恢复。
  3. 把这几个字母再输入进去。到这里,我的想法是,既然把删掉的内容再补回去,那么文件内容和之前的原版是一样的,可以认为是同一个文件了。
  4. 很可惜,multipar 依然显示不能恢复。
    这就很奇怪了,只有一个可能,文件和以前还是不一样。用 sha1 比对了一下,果然,就算内容和以前一模一样,hash 也不一样了。

之后用 txt 格式,rtf 格式,甚至 markdown 格式都重复了一次“删除部分内容,还原部分内容”的操作,对比前后 hash 是一样的。

而 doc,docx,xls 之类格式都不行。后来搜了搜,好像 doc 是二进制存储的。

结论就是这类文件稍有改动就很难恢复,也不是开放格式,还是避开为好。

2 个赞

office 档案都会包含一些元数据,比如修订次数啊,作者姓名之类的内容。

4 个赞

是的,就是这样,所以只要一修改,就很难恢复了。

测试文件恢复工具请用 HxD 之类的工具来编辑文件 :joy:


至于 Office,打开一次文件就变了。解压 .docx 文件看看 xml 文件就知道了。

1 个赞

doc 和 docx 不是同一个格式.

doc 是二进制数据流

docx 本质是zip格式压缩的 xml 数据

3 个赞

word会记录当前浏览位置. 用只读方式打开就不会了.

我倒不是故意想和你抬杠,我和你的需求不是很一样,你是怕文件损坏,我是怕文件被人为修改,所以我主要测试文件内容变化

不是抬杠 :joy: 说 Parchive 我就以为是文件损坏 orz

至于内容变化,一般都是靠 hash 校验来辨别。如果说想 “还原” 或者 “撤销” 变化,则是文件版本管理。

其实是这样,我的办公电脑,别人都知道密码,又不能不让他们用,但又担心某些文件会被故意改动,比如我会把一些重要事项记在一个doc里。以前解决办法是定期备份到 U 盘里,但也不是很方便。这不从你帖子里知道了 multipar,感觉可以拿来试试,反正生成的 par 文件别人也不认识,所以我每次都把冗余度调成 50%。其实想想也没啥好解决办法,还是提高备份频率吧。

如果只是记录纯文本内容的话,不妨直接使用 txt 或 markdown 来写,然后使用 git 来进行版本管理。这样就能发现别人的改动并恢复到原来的版本。

如果必须使用 office 文件,另一个帖子中提到的 TortoiseGit 好像能很大程度上简化操作。


git 文件基本都在 .git 文件夹中,只要设置默认不显示隐藏的文件夹,别人甚至看不到 :joy:

好的,谢啦,我去学习学习

:thinking: 让我想起一个不太常用的词「多用户操作系统」,你说的问题,可不可以通过新建一个或多个用户解决呢。

很可惜不行,因为其他人用我电脑就是为了用我的文件,再建一个用户我也依然得让他们能读写这些文件:joy:

版本管理最简单的开系统还原记录啊能只记录文档的用得着这么麻烦么 :rofl:

我只想吐槽你的需求和你的主题不相关。。。

相关啊。我本来没想说我的需求,我是给 @pessoa 解释一下我为什么要用一个校验恢复软件来进行内容恢复。

@tiger 说了,office 文件包含元数据,虽然对 office 自身来说很有必要,但就导致改变内容后就再也无法还原成“原始文件”了。所以,我感觉是不太适合个人用来存档用。还是纯文本格式更好。

存档的目的是什么? 如果是记录的内容本身, 同为office 系列的 OneNote 更合适保存个人内容.

OneNote只能用OneNote打开,通用性不行。

有没有可能multipar对doc的支持有限?or没有最佳?
我觉得,从软件可信度来说,office应该比……multipar高吧?

doc是office自定义的二进制格式,docx是开放格式的呀,改成zip解压看看~