查看: 1460|回复: 12
收起左侧

[系统] 檔案複製的完整性問題

[复制链接]
ka2437
发表于 2018-10-10 20:22:57 | 显示全部楼层 |阅读模式
本帖最后由 ka2437 于 2018-10-10 20:25 编辑

我用了CTRL+C那麼久,最近才知道檔案複製的同時

可以檢查檔案的完整性。常見的工具有TeraCopy。

我的問題如下

1. Windows內建的複製 (Windows提供的指令不算) 去複製檔案,

    如果檔案的完整性有問題,Windows會跳出提示視窗嗎?

2. 如果使用Windows提供的複製指令,

    XCOPY /V 真的會檢查檔案的完整性嗎?我看HELP指令,

    並不是這樣解釋的,而是檢查檔案的大小。可是,百度百科說有檢查檔案的完整性。

    ROBOCOPY好像沒有類似檢查檔案完整性的參數。





随便注册
发表于 2018-10-10 21:11:51 | 显示全部楼层
不会,有一次估计是硬件问题,复制到U盘每次校验值都不同,系统可从没提示过。

百度百科也没说完整性,是“验证每个新文件。”

DOS传下来的,没用了
What does the /V (verify) flag to XCOPY mean, and how did it get that way? – The Old New Thing
https://blogs.msdn.microsoft.com/oldnewthing/20160121-00/?p=92911
ELOHIM
发表于 2018-10-10 21:15:50 | 显示全部楼层
复制文件和目录树。
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
                           [/EXCLUDE:file1[+file2][+file3]...]
  source       指定要复制的文件。
  destination  指定新文件的位置和/或名称。
  /A           仅复制有存档属性集的文件,但不更改属性。
  /M           仅复制有存档属性集的文件,并关闭存档属性。
  /D:m-d-y     复制在指定日期或指定日期以后更改的文件。
               如果没有提供日期,只复制那些源时间比目标时间新的文件。
  /EXCLUDE:file1[+file2][+file3]...
               指定含有字符串的文件列表。每个字符串在文件中应位于单独的一行。
               如果任何字符串与复制文件的绝对路径的任何部分相符,则排除复制
               该文件。例如,指定如 \obj\ 或 .obj 的字符串会分别排除目录
               obj 下面的所有文件或带有 .obj 扩展名的所有文件。
  /P           创建每个目标文件之前提示您。
  /S           复制目录和子目录,不包括空目录。
  /E           复制目录和子目录,包括空目录。与 /S /E 相同。可以用来修改 /T。
  /V           验证每个新文件的大小。
  /W           提示您在复制前按键。
  /C           即使有错误,也继续复制。
  /I           如果目标不存在,且要复制多个文件,则假定目标必须是目录。
  /Q           复制时不显示文件名。
  /F           复制时显示完整的源文件名和目标文件名。
  /L           显示要复制的文件。
  /G           允许将加密文件复制到不支持加密的目标。
  /H           也复制隐藏文件和系统文件。
  /R           覆盖只读文件。
  /T           创建目录结构,但不复制文件。不包括空目录或子目录。/T /E 包括空目录和子目录。
  /U           只复制已经存在于目标中的文件。
  /K           复制属性。一般的 Xcopy 会重设只读属性。
  /N           用生成的短名称复制。
  /O           复制文件所有权和 ACL 信息。
  /X           复制文件审核设置(隐含 /O)。
  /Y           取消提示以确认要覆盖现有目标文件。
  /-Y          要提示以确认要覆盖现有目标文件。
  /Z           在可重新启动模式下复制网络文件。
  /B           复制符号链接本身与链接目标相对。
  /J           复制时不使用缓冲的 I/O。推荐复制大文件时使用。
开关 /Y 可以预先在 COPYCMD 环境变量中设置。
这可能被命令行上的 /-Y 覆盖。

ka2437
 楼主| 发表于 2018-10-11 13:56:41 | 显示全部楼层
随便注册 发表于 2018-10-10 21:11
不会,有一次估计是硬件问题,复制到U盘每次校验值都不同,系统可从没提示过。

百度百科也没说完整性, ...

所以說,還是要利用工具(TeraCopy)才能做到檢查檔案完整性?

微軟沒有提供指令檢查?
随便注册
发表于 2018-10-11 14:24:33 | 显示全部楼层
ka2437 发表于 2018-10-11 13:56
所以說,還是要利用工具(TeraCopy)才能做到檢查檔案完整性?

微軟沒有提供指令檢查?

就是这个意思,dos有验证,现在没了,还受“骗”于硬盘缓存,所以选项没用,留着只为兼容

博客最后好像说cmd.exe自己验证,xcopy.exe只验证下大小……我不知道怎么让cmd.exe去验证
ccboxes
发表于 2018-10-11 20:30:42 | 显示全部楼层
微软自带的复制不做软件上的校验,依赖硬件本身的纠错机制进行校验。

原因是软件上边复制边校验是没有意义的,因为你无法保证后续复制时不会因为错误覆盖之前的数据。而如果是像fastcopy一样复制完成后再校验,大文件会极为耗时。
ka2437
 楼主| 发表于 2018-10-12 11:02:21 | 显示全部楼层
ccboxes 发表于 2018-10-11 20:30
微软自带的复制不做软件上的校验,依赖硬件本身的纠错机制进行校验。

原因是软件上边复制边校验是没有意 ...

雖然我不太懂這句話 "無法保證後續複製時,不會因為錯誤而覆蓋之前的資料"


簡單說,是複製完後再檢查會比較好的意思嗎?


依賴硬體本身的糾錯機制,是指複製過程中有錯誤,

會跳出提示訊息的意思嗎?


ccboxes
发表于 2018-10-12 14:48:12 | 显示全部楼层
ka2437 发表于 2018-10-12 11:02
雖然我不太懂這句話 "無法保證後續複製時,不會因為錯誤而覆蓋之前的資料"

也就是说单纯软件上,边复制边校验的方法,你就算校验了,也不能保证数据的可靠性。复制完再校验才是有意义的。

依靠硬件本身的纠错机制就是不做任何校验,默认硬件可以正常运行,自己纠正传输中的错误。

Fastcopy使用的校验方式在传输大文件和大量小文件时太慢了,所以微软没有引入这种方式。

ka2437
 楼主| 发表于 2018-10-13 15:51:00 | 显示全部楼层
ccboxes 发表于 2018-10-12 14:48
也就是说单纯软件上,边复制边校验的方法,你就算校验了,也不能保证数据的可靠性。复制完再校验才是有意 ...

軟體的校驗方式,是指類似網路通訊協定的機制嗎?

確實一邊複製,一邊校驗,是很慢的。


ccboxes
发表于 2018-10-13 19:49:53 | 显示全部楼层
ka2437 发表于 2018-10-13 15:51
軟體的校驗方式,是指類似網路通訊協定的機制嗎?

確實一邊複製,一邊校驗,是很慢的。

是,但TCP/IP的校验是很不可靠的,只能检查出一些简单的传输错误,应用层是还要再做校验。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-25 13:42 , Processed in 0.136280 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表