10.1.10. Получение и установка временных штампов
10.1.10. Получение и установка временных штампов
С каждым файлом на диске связано несколько временных штампов (в разных операционных системах они различны). Ruby понимает три таких штампа: время модификации (когда в последний раз было изменено содержимое файла), время доступа (когда в последний раз файл читался) и время изменения (когда в последний раз была изменена информация о файле, хранящаяся в каталоге).
Получить эту информацию можно тремя разными способами, хотя все они дают один и тот же результат.
Методы mtime, atime и ctime класса File возвращают временные штампы, не требуя предварительного открытия файла или даже создания объекта File.
t1 = File.mtime("somefile")
# Thu Jan 04 09:03:10 GMT-6:00 2001
t2 = File.atime("somefile")
# Tue Jan 09 10:03:34 GMT-6:00 2001
t3 = File.ctime("somefile")
# Sun Nov 26 23:48:32 GMT-6:00 2000
Если файл, представленный экземпляром File, уже открыт, то можно воспользоваться методами этого экземпляра.
myfile = File.new("somefile")
t1 = myfile.mtime
t2 = myfile.atime
t3 = myfile.ctime
А если имеется экземпляр класса File::Stat, то и у него есть методы, позволяющие получить ту же информацию:
myfile = File.new("somefile")
info = myfile.stat
t1 = info.mtime
t2 = info.atime
t3 = info.ctime
Отметим, что объект File::Stat возвращается методом класса (или экземпляра) stat из класса File. Метод класса lstat (или одноименный метод экземпляра) делает то же самое, но возвращает информацию о состоянии самой ссылки, а не файла, на который она ведет. Если имеется цепочка из нескольких ссылок, то метод следует по ней и возвращает информацию о предпоследней (которая уже указывает на настоящий файл).
Для изменения времени доступа и модификации применяется метод utime, которому можно передать несколько файлов. Время можно создать в виде объекта Time или числа секунд, прошедших с точки отсчета.
today = Time.now
yesterday = today - 86400
File.utime(today, today, "alpha")
File.utime(today, yesterday, "beta", "gamma")
Поскольку оба временных штампа изменяются одновременно, то при желании оставить один без изменения его сначала следует получить и сохранить.
mtime = File.mtime("delta")
File.utime(Time.now, mtime, "delta")
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Именование временных файлов
Именование временных файлов Следующая функция создает имена для временных файлов. Файл может находиться в любом заданном каталоге, и его имя должно быть уникальным.Функция GetTempFileName предоставляет уникальное имя файла с расширением .tmp, используя указанный путь доступа, и
11.3.6. Изменение временных меток файла
11.3.6. Изменение временных меток файла Владелец файла может изменять mtime и atime файла на любое желаемое значение. Это делает такие метки бесполезными для целей аудита, но позволяет инструментам архивирования вроде tar и cpio сбрасывать временные метки файлов в то значение,
22.3.5. Создание временных файлов
22.3.5. Создание временных файлов Довольно часто в программах применяются временные файлы. Система Linux даже предусматривает для этой цели особые каталоги (/tmp и /var/tmp). К сожалению, использование временных файлов в безопасном режиме — дело очень ненадежное. Лучшим решением
Функционирование временных серверов
Функционирование временных серверов Работа временных серверов начинается с получения сведений о времени от официальных источников. Эти сведения получаются путем считывания показаний атомных часов, приема специальных радиосигналов и т.д. Служба GPS (Global Positioning System —
13.1.3 Получение сетевого адреса и установка ПО
13.1.3 Получение сетевого адреса и установка ПО Поскольку вы собираетесь устанавливать машину с Linux в уже существующую сеть, то следующим вашим шагом при подключении к сети должно стать обращение к администратору сети за получением сетевого адреса. Точнее, вы должны
Часть I Получение копии дистрибутива и установка Ubuntu
Часть I Получение копии дистрибутива и установка Ubuntu Глава 2 Получение дистрибутива Ubuntu Ubuntu распространяется абсолютно бесплатно, поэтому проще всего получить свою копию этой системы через интернет. Подробнее об этом чуть ниже. Однако если по каким-либо причинам у вас
Безопасность временных таблиц
Безопасность временных таблиц Чтобы предотвратить возможность использования мощных возможностей временных таблиц в неблаговидных целях, на них введены ограничения прав доступа - по умолчанию таблицы видимы и могут изменяться только владельцем базы данных или SYSDBA. В
Получение синусоидальных временных диаграмм при анализе на переменном токе
Получение синусоидальных временных диаграмм при анализе на переменном токе При изучении схем переменного тока обычно используется векторное представление, при котором напряжение источника можно было бы записать как VS=1?0° В. Это означает, что источник синусоидальный с
ICQ: установка и получение собственного номера. Обмен сообщениями
ICQ: установка и получение собственного номера. Обмен сообщениями Аббревиатура ICQ имеет англоязычное происхождение. Строго говоря, это не совсем аббревиатура. Просто данное сочетание букв произносится так же, как и английское словосочетание I seek you – «Я ищу тебя».
11.3.4. Получение и установка переменных экземпляра
11.3.4. Получение и установка переменных экземпляра Отвечая на пожелание употреблять eval как можно реже, в Ruby теперь включены методы, которые могут получить или присвоить новое значение переменной экземпляра, имя которой задано в виде строки:class MyClass attr_reader :alpha, :beta def
14.9.3. Получение и установка кодов завершения
14.9.3. Получение и установка кодов завершения Метод exit возбуждает исключение SystemExit и в конечном счете возвращает указанный код завершения операционной системе (или тому, кто его вызвал). Этот метод определен в модуле Kernel. Метод exit! отличается от него в двух отношениях: он не
1.1. Получение и установка GCC
1.1. Получение и установка GCC ПроблемаВы хотите получить GCC — свободно распространяемый компилятор GNU C/С++.РешениеРешение зависит от вашей операционной системы.WindowsУстановите MinGW, Cygwin или оба.Чтобы установить MinGW, посетите страницу MinGW по адресу www.mingw.org и проследуйте по
Создание штампов (программы «ШТАМП» и Stamp)
Создание штампов (программы «ШТАМП» и Stamp) Для создания различных макетов – визитных карточек, беджей, пропусков, печатей, штампов или пломб – профессиональные дизайнеры используют специальные программы – графические редакторы. Это сложные в освоении, крупные
26.1.2. Создание уникальных временных файлов
26.1.2. Создание уникальных временных файлов При рассмотрении специальных переменных уже обсуждалась переменная $$ Она содержит ID или номер процесса, выполняющегося в текущий момент. Эти сведения применяются при создании временных файлов в текущем сценарии, поскольку ID