mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
阅读:2210回复:8

文件防写坏的一些看法

楼主#
更多 发布于:2010-04-02 13:51
文件过滤加密不可避免的会产生一些坏文件,写坏文件有时候不是因为自身处理逻辑的问题 而是可能在处理某些写入内容的瞬间 掉电之类的。
如何避免外因 或者内因引起的 坏文件的产生应该是必须考虑的事情。
不知道 这个议题值不值的讨论 能不能讨论 呵呵
我先说两个关于如何避免坏文件 。我的想法。
1写前备份,这是最简单的事情了,在写的时候 备份 可以保证不会损失全部文件内容。至少可以恢复到修改前的部分。弱点就是效率会很低下。对于经常操作的文件 增加备份间隔 记录上次记录时间。
2 针对大文件,在磁盘上生成文件镜像,将某些写操作映射到磁盘别的位置,做成类似于还原系统的东西。并在空闲时刻进行文档整理。

浅显的想法,欢迎大家互相讨论。呵呵

mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
沙发#
发布于:2010-04-03 16:30
现在还不急着考虑这样的问题,
“驱动过多的操作文件和生成新文件会被某些杀毒软件误认为病毒,不利于兼容。 ”这点应该不是问题。
“必须保证你自己的代码不出问题,把逻辑吃透,不要奢望可以补救”即便逻辑吃透写的再好,理论上也是可能会产生坏文件的。
“如果代码本身都会导致文件出问题,那么你做再多的补救措施也没用”这点很是同意。

“如果一定要找方法,参考数据库使用的方法,那是目前来说相对比较好的。但是至于实现....” 关于这个问题 我也想到过设计为可以“回滚”之类的,但是从效率上看 好像有点得不偿失。

我想现在的关键可能是 代价和利益的取舍,其实可能和looksail说的 代码逻辑处理好 必须保证自己代码不出问题 。当这点达到以后产生坏文件的可能已经基本等同于 或者说略大于 不安装过滤驱动时候的坏文件产生率了 ,在这里再考虑避免坏文件的时候 可能在现有框架上做能取得的不会是最好的效果。

缓存的引入本身就增加了突然断电等突发事件时候数据丢失的可能。对付这些可能从外部去限制更好(比方强制客户增加ups?呵呵)。
多次备份 回滚 好像对于一般的数据没有多大的意义。
高标准 高安全 肯定是软硬结合的效果,可能单一的从所谓的文件系统去考虑解决不了这样的问题。可能是自己思路狭隘了。

呵呵,感谢ander5115 looksail cyliu的讨论。
欢迎大家各抒己见。

也许我们能在文件系统过滤中能过的最好程序就是 和没有安装我们以前达到同样的坏文件产生率,但是即便这样也会有用户责怪你,所以有必要做一个能降低坏文件出现率的东西。只是一些想法,能不能做 怎么做 我还没有想到,会不会去做我也不知道。
mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
板凳#
发布于:2010-04-13 15:05
回 5楼(qianjunhua) 的帖子
感谢qi 呵呵
mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
地板#
发布于:2010-04-23 17:01
回 7楼(mz_zhang) 的帖子
呵呵 谢谢  各尽本分就好
游客

返回顶部