O que "preparar para copiar" faz?

24

Ao copiar um grande número de arquivos em uma varredura, o Windows leva algum tempo para preparar a cópia ? O mesmo acontece ao excluir grandes quantidades de arquivos. O que esta acontecendo aqui? Que preparativos estão acontecendo lá?

Björn Pollex
fonte
1
Só posso especular que é a digitalização dos arquivos para questões como está sendo bloqueado por outros processos, permissões etc.
ChrisF

Respostas:

8

"Preparando para copiar" é um recurso especial que permite atrasar todo o processo por uma quantidade razoável de tempo e oferece mais tempo para você apreciar uma caixa de diálogo sofisticada criada pelos designers da Microsoft.

Enquanto o Windows está "se preparando para copiar", ele não

  • Verifique se há arquivos possivelmente bloqueados (esses serão revelados apenas durante o processo de cópia real, por motivos óbvios)
  • Faça as alterações no seu sistema de arquivos (observe também que o sistema de arquivos real não é o fator aqui, o comportamento é o mesmo para NTFS / FAT32)

O que ele faz é criar a lista completa de arquivos e executar alguns cálculos de número mágico para fazer suposições erradas sobre o tempo estimado de cópia.

Art Gertner
fonte
2
E o mais engraçado é que, ao copiar de uma rede, esse "preparo" leva mais tempo quando a cópia em si!
Calmarius
7

Ele cria a lista de todos os arquivos na pasta atual e suas subpastas e registra as alterações que serão feitas nos arquivos em um diário. Isso é necessário devido à maneira como o NTFS funciona.

Alguns casos de uso dessa lista incluem:

  • atualizando sistema de arquivos
  • mantendo a consistência do arquivo em caso de falha
  • sabendo o número de arquivos para calcular quanto tempo resta para concluir a operação, qual porcentagem da operação foi concluída até agora e desenhe a barra de progresso de acordo.
  • fornecendo ao usuário que tente novamente ou anule a operação (seja copiar, mover, excluir) quando ela falhar em alguns arquivos.

Se isso for irritante, você sempre pode usar xcopy ou robocopy via prompt de comando para um grande número de operações de arquivo.

Gani Simsek
fonte
17
Se for necessário devido à maneira como o NTFS funciona , por que xcopyfazer seu trabalho sem ele?
Björn Pollex 25/03
5
"preparar a cópia" acontece depois que a lista é criada e usada principalmente para calcular porcentagem, tempo restante, desenhar barra de progresso com gráficos sofisticados etc. O xcopy não se preocupa com tudo isso.
precisa
6
Então, por que você disse que é "necessário por causa da maneira como o NTFS funciona"? Só posso especular sobre o que o Windows faz quando está "preparando", mas lembre-se de que nunca o fez no Windows XP, e utilitários de terceiros (por exemplo, TeraCopy) também têm atrasos quase instantâneos entre iniciar a transferência de arquivos.
Revelação
2
Parece que não me expressei claramente. A lista é necessária para a operação do arquivo, que é comum nos dois casos (por exemplo, cmd e gui) e não leva muito tempo. No entanto, os motivos pelos quais você vê que a janela "preparando para copiar" são devidos aos cálculos gráficos, percentuais e de tempo envolvidos, especialmente no tema Aero, e esse é um dos casos em que essa lista é usada, que eu acho que é a resposta para a pergunta . Como não há gui no xcopy ou robocopy, não há preparação para copiar cálculos. Além disso, ele fez isso no XP, bem como, i.imgur.com/UOiRy.png
Gani Simsek
7
Isso não é verdade - você receberá a mesma mensagem no FAT32. Não é um problema com o sistema de arquivos, é um problema com a API FindFirstFile / FindNextFile. O Explorer (responsável pela caixa de diálogo de cópia de arquivo) usa a mesma API exposta a você, o programador para exibir essas coisas e a API do Windows não expõe nada sobre a manutenção, por exemplo, tabelas de alocação (em particular, porque o NTFS não usa uma tabela de alocação - que é da terra do FAT).
Billy ONeal
1

Conforme respondida por Raymond Chen em uma das respostas à postagem original da caixa de diálogo de progresso da cópia do arquivo ( http://blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx#47964 ), uma das o que ele faz é obter o tamanho do arquivo para toda a operação de cópia para estimar melhor o tempo que a cópia levará.

RD
fonte
1
Você tem que procurar nos comentários para descobrir onde ele fala sobre isso. Parece que o blog mudou seus links de identificação de comentários; aqui está um pouco mais direta: blogs.msdn.microsoft.com/oldnewthing/20040106-00/...
binki
0

Acredito que esse recurso sofisticado é calcular a porcentagem da barra de progresso quando cada arquivo é copiado, para que você possa apreciar a adorável barra de progresso.

Ahmed
fonte
-1

Que eu saiba, o Windows verifica se pode fazer o que você pede TODOS os arquivos. Isso significa que, por exemplo, arquivos bloqueados são encontrados na frente, em vez de no meio do caminho, causando um resultado incompleto.

Thorbjørn Ravn Andersen
fonte
2
Incorreta. Ele não verifica se há arquivos bloqueados e geralmente falha no meio do processo de cópia real.
Art Gertner