Как скопировать файлы с диска на диск с сохранением временных меток
Содержание:
Самый простой и очевидный способ узнать дату и время последнего доступа, создания и модификации файла — это просмотреть их в свойствах этого файла. Все эти данные будут указаны на первой же вкладке «Общие», только вот считать их истинными у нас нет основания. Почему? Потому что всякий раз, когда мы копируем файлы в другое расположение, мы как-бы создаём их заново, в результате чего их временные метки меняются, точнее, всем скопированным файлам присваивается текущая дата создания, тогда как дата изменения остаётся прежней. А теперь представьте, что у вас на диске имеются некие файлы, которые вы хотите скопировать на другой диск или флешку, сохранив при этом дату создания.
↑ Как скопировать файлы с диска на диск с сохранением временных меток
Если файл один или несколько, у вас есть немного времени, и вы ничего не имеете против китайского софта, можете воспользоваться Change Timestamp — бесплатной портативной утилитой для редактирования временных меток файлов и каталогов. Главное — записать или запомнить временные метки файлов, которые вы хотите копировать. Рассмотрим работу с утилитой на конкретном примере. У нас есть файл с датой и временем создания 24 февраля 2012 года 16.00.47. Первым делом копируем файл на другой диск. Естественно, его дата создания заменяется текущей.
Запускаем утилиту Change Timestamp, отмечаем флажком чекбокс «The file was Crеated», выставляем в полях «New Date» и «New Time» старую дату и время, а затем просто перетаскиваем скопированный файл на окошко программы. Временная метка будет установлена в соответствии с заданной. Аналогичным образом можно изменить дату модификации и дату последнего доступа, отметив флажком чекбоксы «Last Modified» и/или «Last Accessed for reading» соответственно. Кстати, программой Change Timestamp поддерживается рекурсивная обработка содержимого каталогов.
↑ Использование robocopy
Если файлов много и временные метки у них разные, Change Timestamp не подойдёт. Для таких случаев в Windows предусмотрен собственный консольный инструмент robocopy.exe, который умеет сохранять при копировании с диска на диск временные метки и прочие метаданные. Утилита robocopy.exe поддерживает множество параметров, но нам достаточно знать только четыре. Сама же команда копирования выглядит образом:
robocopy "папка, из которой копируется" "папка, в которую копируется" /E /MIR /COPYALL /DCOPY:T
Сформированную команду выполняем в командной строке или консоли PowerShell. В двойных кавычках указывается полный путь к каталогам, если в путях нет пробелов, кавычки можно опустить. В результате будут скопированы все файлы и каталоги из первой папки во вторую с сохранением даты и времени создания. Если кому интересно, за сохранение всех временных меток отвечает ключ /DCOPY:T, остальные ключи являются дополнительными, так, ключ /E включает рекурсию, /MIR отзеркаливает дерево папок, а /COPYALL сохраняет метаданные копируемых файлов.