今天调BUG遇到个问题,头用记事本演示了一下问题,结果发现了一个意外的收获。
BUG是这样的在记事本里写入些信息比如:12345 并保存成文件 新建 文本文档.txt 复制这个文件,然后修改文件的内容为12345asdf保存,然后换个地方粘贴文件。大家觉得打开后会显示什么呢?
打开后是12345asdf,这也就是我项目中的问题,但是看了这个结果后我开始也很纳闷为什么不是12345呢?我明明复制的是它12345的时候的文件啊?后来想想才明白了些当你复制文件时,Windows会将文件保存到剪贴板,大家都是到剪贴板是内存中的一块区域,而我们复制的文件其实只是在内存中保存了一个指向这个文件的一个引用地址,原来是引用传递,所以当你再次修改文件内容保存后,你粘贴后的文件也会改变。
问题就提到这里,不知大家对于我的理解是否有异议,当然了我个人觉得这个设计可以节省内存,它不必把文件整个都保存到内存中去,效率很高,但回头想想这个设计是不是真的合理呢?为甚么复制这个文件当时的状态,粘贴后要变化?我想这还需要大家来说说看法。