Скрытые (скрытые) сбои при копировании большой папки с помощью Проводника

623
zar

Когда я начинаю копировать очень большую папку (скажем, 40 ГБ) в Windows 7 File Explorer, скорость выполнения показывает, что для ее завершения могут потребоваться часы. Поэтому я оставляю это на ночь, только чтобы обнаружить утром, что он все еще утверждает, что пытается скопировать (он потерпел неудачу, но все еще находится в процессе выполнения).

Есть ли способ скопировать большую папку с высокой степенью уверенности в том, что она будет успешно завершена, или, по крайней мере, она завершит работу и отобразит сообщение об ошибке, если возникнет проблема?

0
В прошлый раз, когда я использовал Windows, он даже не знал, достаточно ли места для файла, до тех пор, пока на полпути не вернулась ошибка «диск заполнен». Надеюсь, это улучшилось после Win7 ... но ... Tetsujin 5 лет назад 0
@ Tetsujin действительно трудно получить большую папку для копирования через проводник. Эта проблема не слишком хорошо отмечена. Использование File Explorer для больших папок должно быть нет-нет, чтобы выразить это. zar 5 лет назад 0
В этом скрыт законный вопрос, но он сформулирован не по теме. Он приглашает к обсуждению, вызывает спор о том, является ли File Explorer действительно проблематичным, и запрашивает мнение о том, что лучше. Я голосую, чтобы закрыть на этой основе, но откажусь от голосования, если вы можете улучшить вопрос. Просто укажите проблему, с которой вы столкнулись, и попросите ее решить. fixer1234 5 лет назад 1
@ fixer1234 Я изменил название с тех пор. zar 5 лет назад 0
Копирование с одного диска на другой диск будет намного быстрее, чем копирование на тот же диск. При копировании на тот же диск, диск должен постоянно находить и перемещаться между исходным и целевым местоположениями. Если папка содержит огромное количество крошечных файлов, она также должна хранить информацию каталога для каждого из них. Так что это займет гораздо больше времени, чем копирование нескольких чрезвычайно больших файлов. Огромные папки не будут скопированы мгновенно, но 40 ГБ не должны занимать часы, даже в самых худших условиях (если только вы не занимаетесь большим количеством накопителей, (продолжение) fixer1234 5 лет назад 0
или интенсивная память, задача одновременно. Если это занимает часы, это может быть потому, что диск начинает выходить из строя или, по крайней мере, имеет много повреждений. В этом случае он тратит много времени на перечитывание плохих областей и перемещение данных из плохих областей. Симптом, который вы испытали, указывает на то, что может быть целесообразно запустить chkdsk на диске для его очистки. Если на диске есть поддержка SMART, проверьте его статистику, чтобы увидеть, начинает ли он выходить из строя. fixer1234 5 лет назад 0
Это также может быть вызвано переполнением кэша SSD. Это видео объясняет это с точки зрения непрофессионала. https://www.youtube.com/watch?v=OffzVc7ZB-o Gabriel Fair 5 лет назад 0

1 ответ на вопрос

0
zar

Использование проводника Windows для копирования большой папки, действительно, не очень полезно по двум причинам.

  • Основная причина в том, что копирование файла может произойти сбой по той или иной причине, но он никогда не возвращается, и будет выглядеть так, как будто копирование все еще продолжается, где, на самом деле, он просто застрял. Это может тратить много времени на пользователя.
  • Если это не удалось из-за ошибки, это не говорит, почему это не удалось, в чем проблема.

Например, копирование файла может произойти сбой, потому что среди 40 ГБ данных был один недопустимый ярлык, где цель отсутствовала. Это не удастся выполнить копирование, но пользователь будет знать об этом, и это будет выглядеть так, как будто копирование еще продолжается. Могут быть и другие причины неудач, которых мы не знали бы.

Решения:

  1. Лучше всего копировать большие папки в командной строке и использовать `xcopy '. Преимущество заключается в том, что если он потерпит неудачу, он немедленно вернется, и вы будете знать. Это сказало, что это все еще потерпит неудачу с вышеупомянутой ситуацией (недопустимый ярлык), но выдаст ошибку правильно.
  2. Лучший выбор - развернуть скрытую копию, которая не заботится о файлах, а копирует биты в биты. Лучшие инструменты есть scpили, rsyncно они не всегда доступны в Windows.

Использование SCP в Windows

Установите cygwin в Windows и используйте scpкоманду из его оболочки следующим образом, предполагая скопировать c: \ BigFolder на USB-накопитель F: \ BigFolderBackup /

scp -r /cygdrive/c/BigFolder/ /cygdrive/f/BigFolderBackup/ 

Где -r для рекурсивного копирования, что означает копирование всех подпапок и их файлов.

Обновить

Как отмечает Скотт в комментариях, так как его копия на локальной машине так же cpподойдет. Синтаксис по сути идентичен.

Другой сценарий, с которым я столкнулся, - это когда папка содержит файл, в котором у меня не было разрешений на чтение. Наш ИТ-отдел не позволяет пользователям запускать утилиту CCleaner, поэтому разрешение на чтение для нее отключено.

Я использовал cpэто время, и оно прошло хорошо. Он сообщил об соответствующей ошибке в этом файле (не скопировал его), но не остановил операцию копирования и продолжил копирование всего остального. Еще одна причина, по которой этот подход побеждает.

Если у вас есть Cygwin, и вы не копируете с одного компьютера на другой, почему бы просто не использовать `` cp`` (вместо `scp`)? Scott 5 лет назад 0
@ Скотт Я думаю, что в этом случае тоже может быть лучше. Он просто не появился у меня на радаре, так как в прошлом я использовал только scp zar 5 лет назад 0