关于文件管理器往U盘中复制文件数据容易出错的解释
Tofloor
poster avatar
zccrs
deepin
2018-12-13 21:13
Author
本帖最后由 zhangjide 于 2018-12-14 11:50 编辑

前段时间看到论坛一些同学发帖说文件管理器往U盘中复制文件容易丢失的问题。现象大概有下面几种:
  • 复制了很多文件,结果到windows上查看文件大小都是0B
  • 文件复制完成后,插到windows上找不到这个文件
  • 文件复制完成了,在windows上也能看到文件,但是文件内容不对

随之而来的是大家会觉得文件管理器复制文件的速度太假了,是骗小孩子的。之前,计算文件复制速度时只考虑了已用时间和已写入的数据量,但是,写入文件的数据会被系统先放到内存的buffer中,内存肯定是很快的,所以就导致了文件管理器中显示的速度有点飘。再然后,文件复制完了,文件管理器会关闭已打开的文件,系统在执行关闭动作时会把一部分数据回写到储存设备,这部分所需要的时间不确定,所以会导致大家看到文件管理器进度卡在 99%很久。当文件被正常关闭后,接下来的操作一般是点击侧边栏的三角形图标卸载U盘,然后就拔下U盘到其它设备使用了。在这个步骤中存在一个问题,之前的设计中,三角图标在点击后基本很快就会隐藏,但此时设备还在安全移除中,正确的做法是,等待侧边栏上的设备入口消失后再拔掉U盘。针对这个行为可能会引起的误解,文件管理器中更改了可移动设备卸载时的逻辑,不管是点击三角图标还是在右键菜单中选择卸载,对可移除设备都会执行卸载和弹出动作,且等动作都完成后再隐藏三角图标和设备入口,以免图标的隐藏给我们带来错觉。上述这些改动都是新加的,大家在使用的过程中发现了什么问题请积极反馈,我们肯定会积极寻找原因的。另外,往U盘等设备中复制数据时一定要按标准步骤操作,这样才能最大程度的降低数据-----丢失的风险。我个人总结了下面的几个步骤,可以供大家参考:
  • 等待文件管理器的复制对话框消失
  • 检查复制后的文件是否正常
  • 在文件管理器中卸载设备并等待侧边栏上不再显示这个设备
  • 如果设备上有数据指示灯,一定要等灯熄灭后再拔出设备

* 不建议往U盘中剪切数据,在条件允许的情况下,请尽量使用复制,而不是剪切,这样当发现U盘中的数据有问题时还能挽回。另外一定要确保数据都正常时再删除电脑上旧的数据。


如果以上四个步骤都没有出现问题,但U盘上的数据还是消失或者损坏了,可以尝试使用别的文件管理器或者cp命令,把结果和过程都反馈。

--------------------------------

看到有同学提到文件内容校验的问题,文件管理器在复制文件时默认会使用crc32校验新文件内容。但是这个措施只能保证文件管理器给系统写入的数据是没有问题的,不能表示此时此刻硬件设备上存储的数据和当前读到的是一致的。我会考虑把文件完整性校验放到复制任务结束之后,理论上来讲会比现在的更加实用,不过也会稍微增加文件复制任务所需要的时间

Reply Favorite View the author
All Replies
2 / 2
To page
avatar
zccrs
deepin
2018-12-25 01:26
#21
https://bbs.deepin.org/post/172344
说多了没用,学学windows怎么处理这问题的,要是碰到急性子,会把电脑U盘都摔了, ...

已经说了每个问题的解决方案了
Reply View the author
avatar
zccrs
deepin
2018-12-25 01:28
#22
https://bbs.deepin.org/post/172344
并不快,不是所有的U盘读取速度都很高的,一些速度比较一般的盘基本要花两倍时间才能完成一次拷贝任务了 ...

现在还不是真正从U盘设备里读的,只是能排除一部分异常情况
Reply View the author
avatar
zccrs
deepin
2018-12-25 01:31
#23
https://bbs.deepin.org/post/172344
大多数普通U盘没这么高的速度诶,读取还好点,写入50M都不一定有,不过Windows下往U盘拷数据确实是同步写 ...

这个开关也可以考虑,现在是文件管理器中前端显示根据U盘做了优化。
Reply View the author
2 / 2
To page