Что делает «подготовка к копированию»?

24

При копировании большого количества файлов за один раз Windows требуется достаточно времени для подготовки копии ? То же самое происходит при удалении большого количества файлов. Что здесь происходит? Какие приготовления там идут?

Бьерн Поллекс
источник
1
Я могу только предположить, что он сканирует файлы на предмет таких проблем, как блокировка другими процессами, разрешения и т. Д.
ChrisF

Ответы:

8

«Подготовка к копированию» - это особая функция, которая позволяет отложить весь процесс на неоправданное количество времени и дает вам больше времени, чтобы оценить необычное диалоговое окно, созданное дизайнерами Microsoft.

В то время как Windows "готовится к копированию" это не так

  • Проверьте, возможно ли заблокированные файлы (они будут обнаружены только в процессе копирования по понятным причинам)
  • Внесите любые изменения в свою файловую систему (также обратите внимание, что фактическая файловая система здесь не является фактором, поведение такое же для NTFS / FAT32)

Однако он создает полный список файлов и выполняет вычисления с использованием магических чисел, чтобы сделать неверные предположения о предполагаемом времени копирования.

Арт Гертнер
источник
2
И самое забавное, что при копировании из сетевой папки эта «подготовка» занимает больше времени, чем сама копия!
Кальмариус
7

Он создает список всех файлов в текущей папке и ее подпапках и регистрирует изменения, которые будут внесены в файлы в журнале. Это необходимо из-за того, как работает NTFS.

Некоторые варианты использования этого списка включают в себя:

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

Если это раздражает, вы всегда можете использовать xcopy или robocopy через командную строку для большого количества файловых операций.

Гани Симсек
источник
17
Если это необходимо из-за того, как работает NTFS , то почему он может xcopyработать без него?
Бьорн Поллекс
5
«Подготовка копии» происходит после построения списка и в основном используется для вычисления процента, оставшегося времени, рисования индикатора выполнения с причудливой графикой и т. д. xcopy не беспокоится обо всем этом.
Гани Симсек
6
Тогда почему вы сказали, что это «необходимо из-за того, как работает NTFS»? Я могу только размышлять о том, что делает Windows, когда она «готовится», но напомню, что она никогда не делала этого в Windows XP, и сторонние утилиты (например, TeraCopy) также имеют почти мгновенные задержки между началом передачи файла.
Прорыв
2
Похоже, я не ясно выразил себя. Список необходим для файловой операции, которая является общей в обоих случаях (например, cmd и gui) и не занимает много времени. Однако вы видите, что окно «подготовка к копированию» вызвано графикой, процентными и временными вычислениями, особенно в теме Aero, и это один из случаев использования этого списка, который, я думаю, является ответом на вопрос. , Поскольку в xcopy или robocopy нет графического интерфейса, нет необходимости копировать вычисления. Кроме того, он сделал, что в XP, i.imgur.com/UOiRy.png
Гани Симсек
7
Это не правда - вы получите то же сообщение на FAT32. Это не проблема с файловой системой, это проблема с API FindFirstFile / FindNextFile. Проводник (который отвечает за диалог копирования файлов) использует тот же API, который был предоставлен вам, программисту, чтобы отображать эти вещи, а Windows API ничего не раскрывает в поддержке, например, таблиц размещения (в частности, потому что NTFS не использует таблица распределения - это из FAT земли).
Билли Онил
1

Как ответил Раймонд Чен в одном из ответов на свое первоначальное диалоговое сообщение о ходе копирования файла ( http://blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx#47964 ), один из все, что нужно сделать, - это получить размеры файлов для всей операции копирования, чтобы лучше угадать, сколько времени займет копирование.

RD
источник
1
Вы должны искать в комментариях, чтобы найти, где он говорит об этом. Похоже, что блог изменил свои ссылки идентификатора комментария; вот немного более прямой: blogs.msdn.microsoft.com/oldnewthing/20040106-00/…
binki
0

Я считаю, что эта необычная особенность заключается в том, чтобы рассчитывать процент выполнения индикатора при копировании каждого файла, чтобы вы могли оценить прекрасный индикатор выполнения.

Ahmed
источник
-1

Насколько мне известно, Windows проверяет, что она может делать то, что вы просите для всех файлов. Это означает, что, например, заблокированные файлы обнаруживаются заранее, а не наполовину, что приводит к неполному результату.

Турбьерн Равн Андерсен
источник
2
Неправильно. Он не проверяет наличие заблокированных файлов и очень часто дает сбой в процессе копирования.
Арт Гертнер