Was macht die Kopiervorbereitung?

24

Wenn Sie eine große Anzahl von Dateien auf einmal kopieren, benötigt Windows einige Zeit, um die Kopie vorzubereiten . Das gleiche passiert, wenn große Mengen von Dateien gelöscht werden. Was passiert hier? Welche Vorbereitungen laufen dort?

Björn Pollex
quelle
1
Ich kann nur spekulieren, dass es die Dateien auf Probleme wie durch andere Prozesse, Berechtigungen usw. gesperrt
scannt

Antworten:

8

"Vorbereiten des Kopiervorgangs" ist eine spezielle Funktion, mit der Sie den gesamten Vorgang um einen unangemessenen Zeitraum verzögern und mehr Zeit haben, um ein von Microsoft-Designern erstelltes ausgefallenes Dialogfeld zu lesen.

Windows "bereitet das Kopieren vor", tut dies jedoch nicht

  • Nach möglicherweise gesperrten Dateien suchen (diese werden aus offensichtlichen Gründen nur während des Kopiervorgangs angezeigt)
  • Nehmen Sie Änderungen an Ihrem Dateisystem vor (beachten Sie auch, dass das tatsächliche Dateisystem nicht der Faktor ist, da das Verhalten für NTFS / FAT32 identisch ist).

Es erstellt jedoch die vollständige Liste der Dateien und führt einige magische Zahlenberechnungen durch, um falsche Annahmen über die geschätzte Kopierzeit zu treffen.

Art Gertner
quelle
2
Und das Lustige ist, dass beim Kopieren von einer Netzwerkfreigabe dieses "Vorbereiten" mehr Zeit in Anspruch nimmt, als die eigentliche Kopie selbst!
Calmarius
7

Es erstellt eine Liste aller Dateien im aktuellen Ordner und seinen Unterordnern und protokolliert die Änderungen, die an den Dateien in einem Journal vorgenommen werden. Dies ist aufgrund der Funktionsweise von NTFS erforderlich.

Einige Anwendungsfälle dieser Liste umfassen:

  • Aktualisieren des Dateisystems
  • Beibehaltung der Dateikonsistenz im Falle eines Fehlers
  • Wenn Sie die Anzahl der Dateien kennen, können Sie berechnen, wie viel Zeit für den Abschluss des Vorgangs verbleibt, wie viel Prozent des Vorgangs bereits abgeschlossen wurden, und den Fortschrittsbalken entsprechend zeichnen.
  • Bereitstellen des Benutzers zum Wiederholen oder Abbrechen des Vorgangs (Kopieren, Verschieben, Löschen), wenn bei einigen Dateien ein Fehler auftritt.

Wenn das ärgerlich ist, können Sie xcopy oder robocopy immer über die Eingabeaufforderung für eine große Anzahl von Dateivorgängen verwenden.

Gani Simsek
quelle
17
Wenn es aufgrund der Funktionsweise von NTFS notwendig ist , warum kann xcopyes dann ohne NTFS funktionieren ?
Björn Pollex
5
"Vorbereitung der Kopie" findet statt, nachdem die Liste erstellt und hauptsächlich für die Berechnung des Prozentsatzes, der verbleibenden Zeit, das Zeichnen des Fortschrittsbalkens mit ausgefallenen Grafiken usw. verwendet wurde. xcopy kümmert sich nicht darum.
Gani Simsek
6
Warum sagten Sie dann, dass dies "aufgrund der Funktionsweise von NTFS erforderlich" ist? Ich kann nur darüber spekulieren, was Windows tut, wenn es sich "vorbereitet", aber ich erinnere mich, dass dies in Windows XP noch nie der Fall war und dass es bei Dienstprogrammen von Drittanbietern (z. B. TeraCopy) zwischen dem Starten der Dateiübertragung fast sofort zu Verzögerungen kommt.
Durchbruch
2
Sieht so aus, als hätte ich mich nicht klar ausgedrückt. Die Liste wird für die Dateioperation benötigt, die in beiden Fällen üblich ist (z. B. cmd und gui) und nicht viel Zeit in Anspruch nimmt. Die Gründe, warum Sie das Fenster "Vorbereiten des Kopierens" sehen, liegen in den Grafiken, Prozentsätzen und Zeitberechnungen, insbesondere im Aero-Thema, und dies ist einer der Fälle, in denen diese Liste verwendet wird. Ich denke, dies ist die Antwort auf die Frage . Da es in xcopy oder robocopy keine GUI gibt, müssen keine Vorbereitungen zum Kopieren von Berechnungen getroffen werden. Außerdem hat es das auch in XP getan
Gani Simsek
7
Dies ist nicht wahr - Sie erhalten die gleiche Meldung für FAT32. Es ist kein Problem mit dem Dateisystem, sondern mit der FindFirstFile / FindNextFile-API. Der Explorer (der für den Dateikopie-Dialog verantwortlich ist) verwendet die gleiche API, die Ihnen zur Verfügung steht, der Programmierer, um diese Dinge anzuzeigen, und die Windows-API enthält keine Informationen zum Verwalten von z. B. Zuordnungstabellen (insbesondere, weil NTFS diese nicht verwendet) eine Zuordnungstabelle - das ist aus FAT Land).
Billy ONeal
1

Wie von Raymond Chen in einer der Antworten auf seinen ursprünglichen Beitrag zum Fortschritt des Dateikopierens ( http://blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx#47964 ) beantwortet , einer von Sie müssen lediglich die Dateigrößen für den gesamten Kopiervorgang abrufen, um eine bessere Einschätzung der Zeit zu erhalten, die die Kopie benötigt.

RD
quelle
1
Sie müssen in den Kommentaren suchen, um herauszufinden, wo er darüber spricht. Scheint, als hätte der Blog seine Links zur Kommentarkennung geändert. Hier ist eine etwas direktere: blogs.msdn.microsoft.com/oldnewthing/20040106-00/…
binki
0

Ich glaube, diese ausgefallene Funktion berechnet den Prozentsatz der Fortschrittsanzeige, wenn jede Datei kopiert wird, so dass Sie die schöne Fortschrittsanzeige zu schätzen wissen.

Ahmed
quelle
-1

Meines Wissens überprüft Windows, ob es nach ALLEN Dateien fragen kann. Dies bedeutet, dass z. B. gesperrte Dateien im Voraus gefunden werden und nicht auf halbem Weg ein unvollständiges Ergebnis verursachen.

Thorbjørn Ravn Andersen
quelle
2
Falsch. Es wird nicht nach gesperrten Dateien gesucht und schlägt während des eigentlichen Kopiervorgangs häufig fehl.
Art Gertner