Do czego służy „przygotowywanie kopii”?

24

Podczas kopiowania dużej liczby plików za jednym razem, system Windows potrzebuje dość czasu na przygotowanie kopii ? To samo dzieje się podczas usuwania dużych ilości plików. Co tu się dzieje? Jakie przygotowania się tam odbywają?

Björn Pollex
źródło
1
Mogę tylko spekulować, że skanuje pliki w poszukiwaniu takich problemów, jak zablokowanie przez inne procesy, uprawnienia itp.
ChrisF

Odpowiedzi:

8

„Przygotowanie do kopiowania” to specjalna funkcja, która pozwala opóźnić cały proces o nieuzasadnioną ilość czasu i daje więcej czasu na docenienie fantazyjnego okna dialogowego stworzonego przez projektantów Microsoft.

Podczas gdy Windows „przygotowuje się do skopiowania”, nie robi tego

  • Sprawdź, czy możliwe są zablokowane pliki (z oczywistych powodów zostaną one ujawnione podczas faktycznego procesu kopiowania)
  • Wprowadź zmiany w systemie plików (zwróć również uwagę, że faktyczny system plików nie jest tu czynnikiem, zachowanie jest takie samo dla NTFS / FAT32)

Jednak tworzy pełną listę plików i wykonuje pewne obliczenia magicznej liczby, aby przyjąć błędne założenia dotyczące szacowanego czasu kopiowania.

Art Gertner
źródło
2
Zabawne jest to, że podczas kopiowania z udziału sieciowego to „przygotowanie” zajmuje więcej czasu niż sama kopia!
Calmarius
7

Tworzy listę wszystkich plików w bieżącym folderze i jego podfolderach oraz rejestruje zmiany, które zostaną wprowadzone w plikach w dzienniku. Jest to konieczne ze względu na sposób działania NTFS.

Niektóre przypadki użycia z tej listy obejmują:

  • aktualizacja systemu plików
  • utrzymanie spójności plików w przypadku awarii
  • znając liczbę plików, abyś mógł obliczyć, ile czasu pozostało do zakończenia operacji, jaki procent operacji został do tej pory zakończony i odpowiednio narysować pasek postępu.
  • zapewniając użytkownikowi ponowienie lub przerwanie operacji (niezależnie od tego, czy jest to kopiowanie, przenoszenie, usuwanie) w przypadku niepowodzenia niektórych plików.

Jeśli to denerwujące, zawsze możesz użyć xcopy lub robocopy za pomocą wiersza polecenia dla dużej liczby operacji na plikach.

Gani Simsek
źródło
17
Jeśli jest to konieczne ze względu na sposób działania systemu plików NTFS , to dlaczego można xcopybez niego wykonywać swoje zadania?
Björn Pollex
5
„przygotowanie kopii” ma miejsce po skompilowaniu listy i służy głównie do obliczania procentu, pozostałego czasu, rysowania paska postępu z fantazyjną grafiką itp. xcopy nie przejmuje się tym wszystkim.
Gani Simsek
6
Dlaczego więc powiedziałeś, że „jest to konieczne ze względu na sposób działania NTFS”? Mogę jedynie spekulować na temat tego, co robi Windows, gdy się „przygotowuje”, ale pamiętam, że nigdy tak nie było w Windows XP, a narzędzia innych firm (np. TeraCopy) również mają niemal natychmiastowe opóźnienia między rozpoczęciem przesyłania plików.
Przełom
2
Wygląda na to, że nie wyraziłem się jasno. Lista jest niezbędna do operacji na pliku, która jest powszechna w obu przypadkach (tj. Cmd i gui) i nie zajmuje dużo czasu. Jednak powody, dla których widzisz, że okno „przygotowania do skopiowania” są spowodowane grafiką, obliczeniami procentowymi i czasowymi, szczególnie w temacie Aero i jest to jeden z przypadków, w którym ta lista jest używana, co moim zdaniem jest odpowiedzią na pytanie . Ponieważ nie ma GUI w Xcopy ani Robocopy, nie ma przygotowania do kopiowania obliczeń. ZNACZYŁO to
Gani Simsek
7
To nie jest prawda - dostaniesz tę samą wiadomość na FAT32. To nie jest problem z systemem plików, to problem z FindFirstFile / FindNextFile API. Eksplorator (który jest odpowiedzialny za okno dialogowe kopiowania plików) korzysta z tego samego interfejsu API, który jest dla ciebie widoczny, programista wyświetla te rzeczy, a interfejs API systemu Windows nie ujawnia niczego na temat utrzymywania np. Tabel alokacji (W szczególności, ponieważ NTFS nie używa tabela alokacji - pochodzi z ziemi FAT).
Billy ONeal,
1

Odpowiedzi udzielił Raymond Chen w jednej z odpowiedzi na swój oryginalny post w oknie dialogowym Postęp kopiowania plików ( http://blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx#47964 ), jeden z robi to, aby uzyskać rozmiary plików dla całej operacji kopiowania, aby lepiej oszacować czas potrzebny na kopię.

R & D
źródło
1
Musisz przeszukać komentarze, aby znaleźć miejsce, w którym o tym mówi. Wygląda na to, że blog zmienił linki do identyfikatora komentarza; tutaj jest nieco bardziej bezpośredni: blogs.msdn.microsoft.com/oldnewthing/20040106-00/…
binki
0

Uważam, że ta fantazyjna funkcja polega na obliczeniu procentu paska postępu po skopiowaniu każdego pliku, abyś mógł docenić piękny pasek postępu.

Ahmed
źródło
-1

Według mojej wiedzy system Windows sprawdza, czy może zrobić to, o co prosisz o WSZYSTKIE pliki. Oznacza to, że np. Zablokowane pliki znajdują się z przodu zamiast w połowie, powodując niepełny wynik.

Thorbjørn Ravn Andersen
źródło
2
Błędny. Nie sprawdza zablokowanych plików i bardzo często kończy się niepowodzeniem w trakcie procesu kopiowania.
Art Gertner,