如果你只问怎么拷贝的话
你可以分块拷贝
一次只拷贝1M的文件写一个循环
一点一点的拷贝完成(这种方式很常用!)
这样的代码也不多也就三十行就完事了 (虽说File.Copy只是一行)
而且你这样写能够捕捉到当前的拷贝进度
你可以分块拷贝
一次只拷贝1M的文件写一个循环
一点一点的拷贝完成(这种方式很常用!)
这样的代码也不多也就三十行就完事了 (虽说File.Copy只是一行)
而且你这样写能够捕捉到当前的拷贝进度
用流还可以批次处理,500M一次。
我理解是这样的。
File.Copy是将文件流整个读取到内存中来。然后再写到对应的位置
如果可用内存小于要copy的文件
系统就会不停的向机器要内存。不停的gc
而机器,由于内存有限,所以就没有办法提供内存,造成死循环。
而ctrl+v
是将文件分成无数块,一块一块的copy过去。
就不会存在内存不足问题。