fileatime — Получить время последнего доступа к файлу


fileatime

(PHP 4, PHP 5, PHP 7)

fileatime — Возвращает время последнего доступа к файлу

Описание

Возвращает время последнего доступа к файлу.

Список параметров

Возвращаемые значения

Возвращает время, когда в последний раз был осуществлен доступ к указанному файлу, или FALSE в случае возникновения ошибки. Время возвращается в виде временной метки Unix.

Примеры

Пример #1 Пример использования функции fileatime()

// Пример вывода: В последний раз обращение к файлу somefile.txt было произведено: December 29 2002 22:16:23.

$filename = ‘somefile.txt’ ;
if ( file_exists ( $filename )) <
echo «В последний раз обращение к файлу $filename было произведено: » . date ( «F d Y H:i:s.» , fileatime ( $filename ));
>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING .

Примечания

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

С целью увеличения производительности некоторые файловые системы на платформах Unix могут быть примонтированы с отключенной возможностью обновления времени последнего доступа к файлам, примером этого могут служить каталоги для хранения сообщений USENET. В подобных случаях использование данной функции бессмысленно.

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache() .

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat() , смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • filemtime() — Возвращает время последнего изменения файла
  • fileinode() — Возвращает индексный дескриптор файла
  • date() — Форматирует вывод системной даты/времени


Fileatime — Получить время последнего доступа к файлу

Возвращает дату и время создания, доступа и изменения файла

#include
_Date_Time_GetFileTime ( $hFile )

$hFile Дескриптор файла, для которого должно быть получено время и дата. Дескриптор файла должен быть создан с использованием функции CreateFile и с правами доступа GENERIC_READ.

Возвращает массив следующего формата:
[ 0 ] — структура $tagFILETIME с датой и временем создания
[ 1 ] — структура $tagFILETIME с датой и временем доступа
[ 2 ] — структура $tagFILETIME с датой и временем изменения

Не все файловое системы могут записывать время создания и доступа, и не все файловые системы записывают их таким образом. Например, в FAT, время создания имеет разрешение в 10 миллисекунд, время записи имеет разрешение в 2 секунды, и время доступа имеет разрешение в 1 день (на самом деле дату доступа). Таким образом, функция GetFileTime может не вернуть информацию о файловом времени, установленном через SetFileTime. В NTFS задержка обновления времени последнего доступа к файлу составляет один час после последнего доступа.

Илон Маск рекомендует:  Что такое код getverify

Func _Main ()
Local $hGUI , $hFile , $tFile , $aTime

; Создаёт GUI
$hGUI = GUICreate ( «Время» , 400 , 300 )
$iMemo = GUICtrlCreateEdit ( «» , 2 , 2 , 396 , 296 , $WS_VSCROLL )
GUICtrlSetFont ( $iMemo , 9 , 400 , 0 , «Courier New» )
GUISetState ()

; Создание тестового файла и установка времени для него
$hFile = _WinAPI_CreateFile ( @ScriptDir & «\Test.xyz» , 1 )
if $hFile = 0 then _WinAPI_ShowError ( «Не удалось создать файл» )
$tFile = _Date_Time_EncodeFileTime ( @MON , @MDAY , @YEAR , @HOUR , @MIN , @SEC )
$pFile = DllStructGetPtr ( $tFile )
_Date_Time_SetFileTime ( $hFile , $pFile , $pFile , $pFile )
_WinAPI_CloseHandle ( $hFile )

MemoWrite ( «Создан .: » & _Date_Time_FileTimeToStr ( $aTime [ 0 ]))
MemoWrite ( «Последний доступ .: » & _Date_Time_FileTimeToStr ( $aTime [ 1 ]))
MemoWrite ( «Изменен .: » & _Date_Time_FileTimeToStr ( $aTime [ 2 ]))

; Цикл выполняется, пока окно не будет закрыто
Do
Until GUIGetMsg () = $GUI_EVENT_CLOSE

; Записывает строку в элемент для заметок
Func MemoWrite ( $sMessage )
GUICtrlSetData ( $iMemo , $sMessage & @CRLF , 1 )
EndFunc ;==>MemoWrite

Fileatime — Получить время последнего доступа к файлу

fileatime — получает время последнего доступа к файлу.

Описание

int fileatime (string filename)

Возвращает время последнего доступа к файлу или FALSE — при возникновении ошибки. Время возвращается как Unix timestamp.

Результаты работы этой функции кэшируются. См. clearstatcache() .

Примечание: atime файла изменяется, когда читаются блоки данных файла. Это может быть довольно затратно, если приложение регулярно выполняет доступ к большому количеству файлов и директорий. Некоторые файловые системы Unix могут монтироваться с отключенными обновлениями atime для увеличения производительности таких приложений; спулы новостей USENET — обычный пример. В таких файловых системах эта функция будет бесполезна.

Эта функция не будет работать с удалёнными файлами; проверяемый файл обязан быть доступен в файловой системе сервера.

Как получить последнее время доступа к файлу в PHP


Как получить правильный последний доступ к файлам на PHP? Я пробовал файл, но он возвращает временную метку времени последнего дня, но я уверен, что есть много файлов, которые вы получили гораздо позже. Как fileatime принимает временную метку, что воспринимается как «доступ»? Должна ли ЖИТ делать какие-то проблемы? (Выполняется ли проверка как «доступ» к файлу. )

Две важные вещи, которые следует отметить

Результат функции fileatime кешируется. Используйте clearstatcache(), чтобы очистить кеш.

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

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

12 Veera [2009-05-28 13:53:00]

Я знаю, что с помощью объекта File мы можем получить последнее измененное время для File (т.е. File.lastModified()), Но мое требование — получить последнее время доступа для File в Java. Как это получить?

2 ответа

12 Решение Esko Luontola [2009-05-28 14:02:00]

Вам понадобится новый API ввода-вывода файлов (NIO2), который поставляется с Java 7. Он имеет метод lastAccessTime() для чтения последнего времени доступа.

Вот пример использования:

Для получения дополнительной информации см. Управление метаданными в учебнике по Java.

4 Kris [2009-05-28 13:56:00]

Вы не можете сделать это с помощью простой Java, вам нужно будет использовать JNI для доступа к данным конкретной платформы, таким как это, или использовать расширения базовой библиотеки Java следующим образом:

Илон Маск рекомендует:  Что такое код ingres_fetch_object

Или, если у вас есть Java 7, перейдите с ответом Esko и используйте NIO.

fileatime

fileatime — получает время последнего доступа к файлу.

Описание

int fileatime (string filename)

Возвращает время последнего доступа к файлу или FALSE — при возникновении ошибки. Время возвращается как Unix timestamp.

Результаты работы этой функции кэшируются. См. clearstatcache() .


Примечание: atime файла изменяется, когда читаются блоки данных файла. Это может быть довольно затратно, если приложение регулярно выполняет доступ к большому количеству файлов и директорий. Некоторые файловые системы Unix могут монтироваться с отключенными обновлениями atime для увеличения производительности таких приложений; спулы новостей USENET — обычный пример. В таких файловых системах эта функция будет бесполезна.

Эта функция не будет работать с удалёнными файлами; проверяемый файл обязан быть доступен в файловой системе сервера.

fileatime

fileatime — Получить время последнего доступа к файлу

Описание

Возвращает время, когда в последний раз был осуществлен доступ к указанному файлу, или FALSE в случае ошибки. Время возвращается в формате ‘Unix timestamp’.

Примечание: Предполагается, что время последнего доступа файла изменяется во время чтения блоков файла. Это может потребовать значительного количества системных ресурсов, особенно когда приложение обращается к большому числу файлов или каталогов. С целью увеличения производительности, некоторые файловые системы на платформах Unix могут быть примонтированы с отключенной возможностью обновления времени последнего доступа к файлам, примером этого могут служить каталоги для хранения сообщений USENET. В подобных случаях использование данной функции бессмысленно.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в List of Supported Protocols/Wrappers.

Пример #1 Пример использования функции fileatime()

Fileatime — Получить время последнего доступа к файлу

fileatime — получает время последнего доступа к файлу.

Описание

int fileatime (string filename)

Возвращает время последнего доступа к файлу или FALSE — при возникновении ошибки. Время возвращается как Unix timestamp.

Результаты работы этой функции кэшируются. См. clearstatcache() .

Примечание: atime файла изменяется, когда читаются блоки данных файла. Это может быть довольно затратно, если приложение регулярно выполняет доступ к большому количеству файлов и директорий. Некоторые файловые системы Unix могут монтироваться с отключенными обновлениями atime для увеличения производительности таких приложений; спулы новостей USENET — обычный пример. В таких файловых системах эта функция будет бесполезна.

Эта функция не будет работать с удалёнными файлами; проверяемый файл обязан быть доступен в файловой системе сервера.

Fileatime — Получить время последнего доступа к файлу

Возвращает дату и время создания, доступа и изменения файла

#include
_Date_Time_GetFileTime ( $hFile )

$hFile Дескриптор файла, для которого должно быть получено время и дата. Дескриптор файла должен быть создан с использованием функции CreateFile и с правами доступа GENERIC_READ.


Возвращает массив следующего формата:
[ 0 ] — структура $tagFILETIME с датой и временем создания
[ 1 ] — структура $tagFILETIME с датой и временем доступа
[ 2 ] — структура $tagFILETIME с датой и временем изменения

Илон Маск рекомендует:  Тег dir

Не все файловое системы могут записывать время создания и доступа, и не все файловые системы записывают их таким образом. Например, в FAT, время создания имеет разрешение в 10 миллисекунд, время записи имеет разрешение в 2 секунды, и время доступа имеет разрешение в 1 день (на самом деле дату доступа). Таким образом, функция GetFileTime может не вернуть информацию о файловом времени, установленном через SetFileTime. В NTFS задержка обновления времени последнего доступа к файлу составляет один час после последнего доступа.

Func _Main ()
Local $hGUI , $hFile , $tFile , $aTime

; Создаёт GUI
$hGUI = GUICreate ( «Время» , 400 , 300 )
$iMemo = GUICtrlCreateEdit ( «» , 2 , 2 , 396 , 296 , $WS_VSCROLL )
GUICtrlSetFont ( $iMemo , 9 , 400 , 0 , «Courier New» )
GUISetState ()

; Создание тестового файла и установка времени для него
$hFile = _WinAPI_CreateFile ( @ScriptDir & «\Test.xyz» , 1 )
if $hFile = 0 then _WinAPI_ShowError ( «Не удалось создать файл» )
$tFile = _Date_Time_EncodeFileTime ( @MON , @MDAY , @YEAR , @HOUR , @MIN , @SEC )
$pFile = DllStructGetPtr ( $tFile )
_Date_Time_SetFileTime ( $hFile , $pFile , $pFile , $pFile )
_WinAPI_CloseHandle ( $hFile )

MemoWrite ( «Создан .: » & _Date_Time_FileTimeToStr ( $aTime [ 0 ]))
MemoWrite ( «Последний доступ .: » & _Date_Time_FileTimeToStr ( $aTime [ 1 ]))
MemoWrite ( «Изменен .: » & _Date_Time_FileTimeToStr ( $aTime [ 2 ]))

; Цикл выполняется, пока окно не будет закрыто
Do
Until GUIGetMsg () = $GUI_EVENT_CLOSE

; Записывает строку в элемент для заметок
Func MemoWrite ( $sMessage )
GUICtrlSetData ( $iMemo , $sMessage & @CRLF , 1 )
EndFunc ;==>MemoWrite

Fileatime — Получить время последнего доступа к файлу

Структура FILETIME — 64-битовое значение, представляющее число интервалов по 100 наносекунд с 1 января 1601 (универсальное глобальное время (UTC)).

Синтаксис

Члены структуры

Младшая часть файлового времени.

Старшая часть файлового времени.

Замечания

Чтобы преобразовать структуру FILETIME во время, которое легко показать на экране для пользователя, используйте функцию FileTimeToSystemTime.

Не рекомендуется, чтобы Вы добавляли и вычитали значения из структуры FILETIME, чтобы получить относительное время. Вместо этого Вы должны:

  • Скопировать получающуюся структуру FILETIME в структуру ULARGE_INTEGER.
  • Используйте обычную 64-битовую арифметическую операцию со значением ULARGE_INTEGER.

То есть, Вы должны скопировать нижнюю и старшую части файлового времени в структуру ULARGE_INTEGER, выполнить 64-битовую арифметическую операцию в члене структуры QuadPart и скопировать члены структуры LowPart и HighPart в структуру FILETIME.

Не приводите указатель на структуру FILETIME, или на ULARGE_INTEGER*, или на значение __ int64* , потому что это может вызвать ошибки выравнивания в 64-битовом Windows.

Не все файловые системы могут сделать запись создания и времени последнего доступа к файлу, и не все файловые системы делают запись их в той же самой манере. Например, в NT FAT у времени создания разрешающая способность 10 миллисекунд, у времени записи разрешающая способность 2 секунды, а у времени доступа разрешающая способность 1 день (фактически дата доступа. На NTFS у времени доступа разрешающая способность 1 час. Поэтому, функция GetFileTime, возможно, не сможет возвратить ту же самую информацию о файловом времени, при использовании функции SetFileTime. Кроме того, FAT делает запись времени на диске в формате местного времени. Однако, NTFS делает запись времени на диске в универсальном глобальном времени (UTC). Для получения дополнительной информации, см. статью Файловое время.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL