Дата изменяется при копировании файла с древней датой на USB-накопитель, но дата сохраняется при копировании файла на тот же диск?

Вопрос или проблема

Дата обновляется при копировании файла с старой датой на USB-накопитель, но дата сохраняется при копировании файла на тот же диск?

Итак, вы видите, что в этом каталоге C:\zet два файла.

Один с датой 1970 года, это файл (IMG_1970...jpg). (Почему дата такая старая, я не знаю, потому что файл был создан в 2016 году, но тем не менее. Обратите внимание, что год в имени файла совпадает с датой).

Другой файл – это видео 2022 года, которое, как мы увидим, хорошо копируется на USB-накопитель.

C:\>dir c:\zet
 Объем на диске C не имеет метки.
 Серийный номер тома 4645-5DCE

 Каталог c:\zet

2024-12-14  23:51    <DIR>          .
2024-12-14  23:51    <DIR>          ..
1970-01-02  06:16         2,222,947 IMG_19700102_061650.jpg
2022-06-15  06:15         3,769,884 VID_20220615_071520306.mp4
               2 File(s)      5,992,831 bytes
               2 Dir(s)  818,724,679,680 bytes free

Вот каталог H:\zet на моем USB-накопителе. Как вы видите, он в настоящее время пуст. Готов, чтобы я продемонстрировал проблему.

C:\>dir h:\zet
 Объем на диске H - Expansion
 Серийный номер тома 0085-95C7

 Каталог h:\zet

2024-12-14  23:50    <DIR>          .
2024-12-14  23:50    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  3,198,971,805,696 bytes free

Я копирую видеофайл на USB-накопитель и показываю файл, и вы видите, что дата сохранена, она была 2022 года, и этот год сохранен в дате.

C:\>copy c:\zet\VID_20220615_071520306.mp4 h:\zet
        1 file(s) copied.

C:\>dir h:\zet
 Объем на диске H - Expansion
 Серийный номер тома 0085-95C7

 Каталог h:\zet

2024-12-14  23:50    <DIR>          .
2024-12-14  23:50    <DIR>          ..
2022-06-15  06:15         3,769,884 VID_20220615_071520306.mp4
               1 File(s)      3,769,884 bytes
               2 Dir(s)  3,198,967,873,536 bytes free

Но посмотрите, что происходит, когда я копирую файл с отметкой 1970 года на USB-диск.

C:\>copy c:\zet\IMG_19700102_061650.jpg h:\zet
        1 file(s) copied.

C:\>dir h:\zet
 Объем на диске H - Expansion
 Серийный номер тома 0085-95C7

 Каталог h:\zet

2024-12-14  23:50    <DIR>          .
2024-12-14  23:50    <DIR>          ..
2022-06-15  06:15         3,769,884 VID_20220615_071520306.mp4
2024-12-14  23:51         2,222,947 IMG_19700102_061650.jpg
               2 File(s)      5,992,831 bytes
               2 Dir(s)  3,198,965,514,240 bytes free

Смотрите выше, что файл, когда был скопирован на H:, получает обновленную дату до текущей даты, текущего года 2024. Год 1970 не сохранился, дата просто была обновлена до текущей даты/времени!

Обратите внимание, что если я скопирую этот файл со старой датой в другое место на C:, на тот же диск.

Тогда дата сохраняется.

C:\>md zet2

C:\>copy c:\zet\IMG_19700102_061650.jpg c:\zet2
        1 file(s) copied.

C:\>dir c:\zet2
 Объем на диске C не имеет метки.
 Серийный номер тома 4645-5DCE

 Каталог c:\zet2

2024-12-14  23:53    <DIR>          .
2024-12-14  23:53    <DIR>          ..
1970-01-02  06:16         2,222,947 IMG_19700102_061650.jpg
               1 File(s)      2,222,947 bytes
               2 Dir(s)  818,721,378,304 bytes free

C:\>cd zet

C:\zet>dir
 Объем на диске C не имеет метки.
 Серийный номер тома 4645-5DCE

 Каталог C:\zet

2024-12-14  23:51    <DIR>          .
2024-12-14  23:51    <DIR>          ..
1970-01-02  06:16         2,222,947 IMG_19700102_061650.jpg
2022-06-15  06:15         3,769,884 VID_20220615_071520306.mp4
               2 File(s)      5,992,831 bytes
               2 Dir(s)  818,720,567,296 bytes free

Вы копируете файл в файловую систему FAT32, которая имеет очень ограниченный диапазон и разрешение для отметок времени по сравнению с NTFS.

FAT хранит каждое поле даты/времени (год, месяц, день и т.д.) отдельно и выделяет 7 бит для года, причем 0 означает 1980 год, а 127 означает 2107 год, следовательно 1970 год выходит за пределы возможного диапазона.

Ответ или решение

Когда вы копируете файлы с различными временными метками, поведение системы может зависеть от типа файловой системы, на которую вы копируете данные. В данном случае вы наблюдаете, что при копировании файла с меткой времени 1970 года на USB-накопитель, работающий на FAT32, временная метка обновляется до текущей даты, в то время как при копировании на тот же диск с меткой времени 2016 года, она сохраняется.

Влияние файловой системы на временные метки

  1. Тип файловой системы:
    Вы используете файловую систему FAT32 для вашего USB-накопителя. FAT32 имеет ограничения по сравнению с NTFS (по умолчанию на большинстве систем Windows). Она использует 7 бит для представления года, а это значит, что диапазон допустимых лет находится в пределах с 1980 по 2107. Таким образом, любой файл с датой, ранее 1980 года, недопустим и приведет к обновлению этой метки на текущую.

  2. Обработка временных меток:
    При копировании файла с меткой времени 1970 года (которая не попадает в допустимый диапазон FAT32), система пытается обработать эту дату, но не может. Поскольку файл не может сохранить свою оригинальную временную метку, Windows присваивает текущую дату и время.

  3. Копирование между одинаковыми файловыми системами:
    При копировании файла с 1970 годом на тот же диск C:, все остается неизменным, потому что NTFS позволяет сохранение временных меток для файлов, и система может обрабатывать их соответственно. Это является результатом более продвинутого способа управления метками времени, который поддерживает расширенные значения и позволяет сохранять оригинальные временные метки без изменений.

Резюме

Таким образом, различия в поведении при копировании файлов с разных временных меток на разные файлы обусловлены:

  • Ограничениями файловой системы FAT32: Из-за 7-битного представления года, датам до 1980 года просто не хватает диапазона.
  • Управлением временными метками: NTFS не накладывает таких ограничений и может сохранять оригинальные метки времени при копировании на том же диске.

Рекомендации

Чтобы избежать подобных проблем в будущем, вы можете рассмотреть возможность использования более современного формата файловой системы для USB-накопителя, такого как NTFS или exFAT, которые поддерживают более широкий диапазон дат и лучше обрабатывают временные метки. Это обеспечит правильное сохранение временных меток независимо от их значений.

Если у вас есть файлы с сильно устаревшими метками времени, могли бы возникнуть и другие проблемы с их обработкой на различных системах, поэтому дальнейшее изучение системы управления файлами и временными метками будет полезным для предотвращения подобных ситуаций.

Оцените материал
Добавить комментарий

Капча загружается...