среда, 7 января 2009 г.

Почему меняется метка времени файла, когда я копирую его на дискету?

Это перевод Why do timestamps change when I copy files to a floppy? Автор: Реймонд Чен.
Дискеты используют файловую систему FAT - так же, как и DOS или Windows 95. С другой стороны, системы на базе Windows NT (Windows 2000, XP, 2003, ...) обычно используют файловую систему NTFS (хотя вы можете отформатировать свой диск в FAT и на Windows NT системе, но это не поведение по-умолчанию).

Файловые системы NTFS и FAT хранят время и дату разными способами. Заметим, например, что FAT отмечает время последней записи (last-write time) только с двухсекундной точностью. Поэтому, если вы копируете файл с NTFS-диска на FAT-диск, то время файла может измениться, но не более, чем на две секунды.

Почему FAT так слаба, по сравнению с NTFS? Потому что FAT изобрели в 1977 г., задолго до того, как люди стали волноваться из-за таких "мелочей", как временные зоны или Unicode. И, кроме того, это было большим преимуществом перед CP/M, которая вообще не имела меток времени для файлов.

Полезно также прочесть и понять последствия хранения меток времени в локальном часовом поясе в FAT и в UTC на NTFS. В дополнение к проблемам перехода на летнее время, вы также заметите, что метка времени будет меняться, когда вы переносите дискету между разными временными зонами. Создайте файл, скажем, в 9 утра по тихоокеанскому времени на дискете. Теперь отнесите дискету куда-нибудь в район с горным временем. Файл был создан в 10 утра по горному времени, но если вы посмотрите свойства файла на дискете, то там будет написано 9 утра, что соответствует 8-ми утра по тихоокеанскому времени. Файл перенёсся назад во времени на один час (другими словами, метка времени не изменилась, хотя должна бы).

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.