其他分享
首页 > 其他分享> > C.File.Copy挂在损坏的文件上

C.File.Copy挂在损坏的文件上

作者:互联网

我一直试图将文件从旧驱动器复制到新驱动器.问题是,旧的驱动器在磁盘上有(我只能假设)一些损坏的位置,任何从这些文件中读取的尝试都会导致某种无限循环.我要复制的文件中散布着很多问题文件,当它遇到第一个文件时,我的应用程序就停在那里,直到我停止它为止.我希望我可以编写一个自定义程序来遍历目录,逐个复制文件,并捕获出现在单个复制操作中的任何错误,从而解决这个问题,但是它永远不会抛出错误- -就坐在那里,坐在那里,然后坐在那里.停止此操作的唯一方法是物理关闭有问题的硬盘驱动器-无法通过尝试结束进程或类似操作来停止程序.

我对如何进行感到有些困惑.鉴于将要发生这种错误,是否有任何方法可以使该过程自动化?有人对这个有经验么?

解决方法:

我猜您在标准System.IO类(Directory / DirectoryInfo / File / FileInfo)上使用了复制方法吗?

您是否尝试过使用FileStream复制文件?为了防止这些错误,您可以在流上设置ReadTimeout(stream.ReadTimeout).这样,当Read()操作花费的时间太长时,您将获得异常.如果文件无法打开,您也会收到错误消息.

标签:hard-drive,c,net
来源: https://codeday.me/bug/20191023/1914126.html