Иногда бывает необходимо изменить дату файла. Чаще всего под датой файла подразумевается дата его изменения. Проблема в том, что в Windows нет встроенных средств для изменения даты файла.

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

Решение через VBScript

Дату файла можно изменить через VBScript, подходящий фрагмент кода есть на сайте aspfaq.com:

Sub Touch(FolderPath, FileName, NewDate)
  Set app = CreateObject("Shell.Application")
  Set folder = app.NameSpace(FolderPath)
  Set file = folder.ParseName(FileName)
  file.ModifyDate = NewDate
End Sub
Touch("C:\", "somefile.txt", "2012-01-01")

Достоинством такого способа является возможность массовой обработки большого количества файлов по каким-либо «хитрым» правилам. Достаточно написать скрипт, где организован цикл по файлам и подкаталогам заданного каталога и к каждому найденному файлу применяется функция Touch.

Для удобства работы к функции добавлен графический интерфейс в виде HTML-приложения. Фактически это HTML-страница с фрагментами кода CSS и JavaScript. Файл «открывается» в стандартном диалоге, части даты (день, месяц, год) задаются выбором из списков. Производится проверка правильности ввода и обработка возможных ошибок. Кнопкой «Сейчас» можно установить текущую дату и время. Есть всплывающие подсказки.

Снимок экрана — форма для указания даты и выбора файла:

HTML-приложение для изменения даты файла в Windows, формат HTA, упаковано в ZIP: change_file_date.zip

Другие способы

Утилита FileDate Changer позволяет задавать не только дату изменения (modified date), но и даты создания (created date) и открытия (accessed date) файла. Можно обработать сразу несколько файлов. Интерфейс на английском языке.

В известном файловом менеджере FAR Manager есть возможность изменения вместе с атрибутами файла дат его создания, изменения и открытия.

Ссылки