Cosa fa "preparazione per la copia"?


24

Quando si copiano un gran numero di file in un unico passaggio, Windows richiede parecchio tempo per preparare la copia ? Lo stesso accade quando si eliminano grandi quantità di file. Cosa sta succedendo qui? Quali preparativi stanno succedendo lì?


1
Posso solo ipotizzare che
stia eseguendo

Risposte:


8

"Preparing to copy" è una funzione speciale che consente di ritardare l'intero processo di una quantità irragionevole di tempo e ti dà più tempo per apprezzare una finestra di dialogo elaborata creata dai designer Microsoft.

Mentre Windows si sta "preparando a copiare", non lo è

  • Verifica la presenza di file eventualmente bloccati (verranno rivelati solo durante l'effettivo processo di copia, per ovvi motivi)
  • Apporta qualsiasi modifica al tuo file system (nota anche che il file system effettivo non è il fattore qui, il comportamento è lo stesso per NTFS / FAT32)

Quello che fa però è creare l'elenco completo dei file ed eseguire alcuni calcoli dei numeri magici per fare ipotesi errate sul tempo di copia stimato.


2
E la cosa divertente è che quando si copia da una rete condividere questa "preparazione" richiede più tempo quando la copia stessa stessa!
Calmarius,

7

Crea l'elenco di tutti i file nella cartella corrente e nelle sue sottocartelle e registra le modifiche che verranno apportate ai file in un giornale. Ciò è necessario a causa del modo in cui NTFS funziona.

Alcuni casi d'uso di tale elenco includono:

  • aggiornamento del file system
  • mantenere la coerenza dei file in caso di errore
  • conoscendo il numero di file in modo da poter calcolare quanto tempo è rimasto per completare l'operazione, quale percentuale dell'operazione è stata completata finora e disegnare la barra di avanzamento di conseguenza.
  • fornendo all'utente di riprovare o interrompere l'operazione (sia che si tratti di copia, spostamento, eliminazione) quando fallisce su alcuni file.

Se questo è fastidioso, puoi sempre usare xcopy o robocopy tramite il prompt dei comandi per un gran numero di operazioni sui file.


17
Se è necessario a causa del modo in cui NTFS funziona , allora perché può xcopyfare il suo lavoro senza di esso?
Björn Pollex,

5
"preparare la copia" si verifica dopo che l'elenco è stato creato e utilizzato principalmente per calcolare la percentuale, il tempo rimanente, il disegno della barra di avanzamento con una grafica elaborata, ecc. xcopy non si preoccupa di tutto ciò.
Gani Simsek,

6
Allora perché hai detto che è "necessario a causa del modo in cui funziona NTFS"? Posso solo fare congetture su cosa fa Windows quando "si sta preparando", ma ricordo che non lo ha mai fatto in Windows XP, e anche le utility di terze parti (ad esempio TeraCopy) hanno ritardi quasi istantanei tra l'avvio del trasferimento di file.
Breakthrough

2
Sembra che non mi sia chiaramente espresso. L'elenco è necessario per l'operazione del file, che è comune in entrambi i casi (ad esempio cmd e gui) e non richiede molto tempo. Tuttavia, i motivi per cui vedi che la finestra "preparazione alla copia" è dovuta alla grafica, alla percentuale e ai calcoli temporali coinvolti, in particolare nel tema Aero e questo è uno dei casi in cui viene utilizzato tale elenco, che penso sia la risposta alla domanda . Dal momento che non esiste alcuna interfaccia grafica in xcopy o robocopy, non è possibile prepararsi a copiare i calcoli. Inoltre, ha fatto anche in XP, i.imgur.com/UOiRy.png
Gani Simsek,

7
Questo non è vero: otterrai lo stesso messaggio su FAT32. Non è un problema con il filesystem, è un problema con l'API FindFirstFile / FindNextFile. Explorer (che è responsabile della finestra di dialogo per la copia dei file) utilizza la stessa API esposta a te, il programmatore per visualizzare queste cose e l'API di Windows non espone nulla sul mantenimento, ad esempio delle tabelle di allocazione (In particolare, perché NTFS non utilizza una tabella di allocazione - che proviene da terreni grassi).
Billy ONeal,

1

Come ha risposto Raymond Chen in una delle risposte al suo post di dialogo sullo stato di avanzamento della copia del file originale ( http://blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx#47964 ), uno dei ciò che fa è ottenere le dimensioni dei file per l'intera operazione di copia per fare una stima migliore del tempo impiegato dalla copia.


1
Devi cercare nei commenti per trovare dove ne parla. Sembra che il blog abbia cambiato i collegamenti dell'identificatore di commento; eccone uno leggermente più diretto: blogs.msdn.microsoft.com/oldnewthing/20040106-00/…
binki

0

Credo che questa fantastica funzione sia quella di calcolare la percentuale della barra di avanzamento quando ogni file viene copiato, in modo da poter apprezzare la deliziosa barra di avanzamento.


-1

Per quanto ne so, Windows verifica che possa fare ciò che chiedi TUTTI i file. Ciò significa che, ad esempio, i file bloccati vengono rilevati in anticipo anziché a metà, causando un risultato incompleto.


2
Non corretto. Non controlla i file bloccati e molto spesso fallisce nel mezzo del processo di copia reale.
Art Gertner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.