Дата создания файла java android

Определение даты создания файла в Java

JDK 7 представил способ просмотра даты создания файла. Узнайте, что это такое.

Автор: Łukasz Ryś
Дата записи

1. Обзор

В JDK 7 появилась возможность получить дату создания файла.

В этом уроке мы узнаем, как получить к нему доступ через java.nio .

2. Files.getAttribute

Один из способов получить дату создания файла – использовать метод Files.getAttribute с заданным Путем :

Тип CreationTime – это FileTime , но из-за того, что метод возвращает Объект, мы должны привести его .

FileTime содержит значение даты в качестве атрибута метки времени. Например, он может быть преобразован в Instant с помощью метода to Instant () .

Если файловая система не хранит дату создания файла, то метод вернет null .

3. Файлы.Атрибуты чтения

Другой способ получить дату создания-с помощью Files.readAttributes , который для заданного Пути возвращает все основные атрибуты файла сразу:

Метод возвращает атрибуты BasicFileAttributes, которые мы можем использовать для получения основных атрибутов файла. Метод creation Time() возвращает дату создания файла как File Time .

На этот раз, если файловая система не хранит дату создания файла, то метод вернет дату последнего изменения . Если дата последнего изменения также не сохранена, то будет возвращена эпоха (01.01.1970).

4. Заключение

В этом уроке мы узнали, как определить дату создания файла в Java. В частности, мы узнали, что можем сделать это с помощью Files.getAttribute и Files.readAttributes .

Как всегда, код для примеров доступен на GitHub .

Источник

Определить дату создания файла в Java

1. Обзор

В JDK 7 появилась возможность получать дату создания файла.

В этом руководстве мы узнаем, как получить к нему доступ через java.nio .

2. Files.getAttribute

Один из способов узнать дату создания файла — использовать метод Files.getAttribute с заданным путем :

Тип CreationTime является FileTime , но из — за того , что метод возвращает Object, мы должны бросить его .

FileTime содержит значение даты как атрибут отметки времени. Например, его можно преобразовать в Instant с помощью метода toInstant () .

Если файловая система не хранит дату создания файла, метод вернет null .

3. Files.readAttributes

Другой способ получить дату создания — использовать Files.readAttributes, который для заданного пути возвращает все основные атрибуты файла сразу:

Метод возвращает BasicFileAttributes, который мы можем использовать для получения основных атрибутов файла. Метод createTime () возвращает дату создания файла как FileTime .

На этот раз, если файловая система не хранит дату создания файла, метод вернет дату последнего изменения . Если дата последнего изменения также не сохранена, то будет возвращена эпоха (01.01.1970).

Читайте также:  Invisible button android studio

4. Вывод

В этом руководстве мы узнали, как определить дату создания файла в Java. В частности, мы узнали, что можем сделать это с помощью Files.getAttribute и Files.readAttributes .

Как всегда, код примеров доступен на GitHub.

Источник

Android: Как получить дату создания файла?

6 ответов

файл дата создания недоступна, а дата последнего изменения:

вот как бы я это сделал

дата создания файла не является доступной частью данных, предоставляемых Java File класса. Я рекомендую вам переосмыслить то, что вы делаете, и изменить свой план, чтобы он вам не понадобился.

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

а затем, когда вы закрываете файл do

Если вы сделали это с момента создания файла, то у вас будет createdDate как lastModified дата все время.

начиная с уровня API 26, Вы можете сделать следующее:

хотя в API платформы Android не может быть никакого метода для этого, есть kludges это сработает в некоторых случаях. Вот один: запустите shell команда сделать

согласно выходу ls —usage на -c опция сообщает ls «использовать ctime для временных меток». На моем Galaxy J3 (Android 7) он производит

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

отказ от ответственности: это не работает на некоторых других устройствах Android. Например. на Huawei H30 под управлением Android 4.2.2, ls не нужно . Хуже того: на HTC Desire 550 (Android 7.0), ls команда утверждает, что принимает параметр-c, чтобы показать ctime, и если вы запустите ls -cl вы получите вывод даты без ошибок. Но дата указана это действительно последнее время модификации, а не время создания! Таким образом, не только время создания не поддерживается, но и трудно обнаружить, что оно не поддерживается.

Источник

Класс File

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

Класс java.io.File может представлять имя определённого файла, а также имена группы файлов, находящихся в каталоге. Если класс представляет каталог, то его метод list() возвращает массив строк с именами всех файлов.

Для создания объектов класса File можно использовать один из следующих конструкторов.

  • File(File dir, String name) — указывается объекта класса File (каталог) и имя файла
  • File(String path) — указывается путь к файлу без указания имени файла
  • File(String dirPath, Sring name) — указывается путь к файлу и имя файла
  • File(URI uri) — указывается объекта URI, описывающий файл

Методы класса File

Класс File может использоваться для создания каталога или дерева каталогов. Также можно узнать свойства файлов (размер, дату последнего изменения, режим чтения/записи), определить к какому типу (файл или каталог) относится объект File, удалить файл. У класса очень много методов, перечислим некоторые.

  • getAbsolutePath() — абсолютный путь файла, начиная с корня системы. В Android корневым элементом является символ слеша (/)
  • canRead() — доступно для чтения
  • canWrite() — доступно для записи
  • exists() — файл существует или нет
  • getName() — возвращает имя файла
  • getParent() — возвращает имя родительского каталога
  • getPath() — путь
  • lastModified() — дата последнего изменения
  • isFile() — объект является файлом, а не каталогом
  • isDirectory — объект является каталогом
  • isAbsolute() — возвращает true, если файл имеет абсолютный путь
  • renameTo(File newPath) — переименовывает файл. В параметре указывается имя нового имени файла. Если переименование прошло неудачно, то возвращается false
  • delete() — удаляет файл. Также можно удалить пустой каталог
Читайте также:  Programming using android phone

Каталог

Каталог — это объект класса File, который содержит список других файлов и каталогов. После создания объекта класса File, являющего каталогом, его метод isDirectory() вернёт значение true. И тогда вы можете вызывать метод list().

Для создания каталога можно использовать метод mkdir(), который вернёт true в успешном случае. Если указанный путь уже существует или каталог нельзя создать из-за отсутствия полного пути к нему, то вернётся false.

Метод mkdirs() создаёт сам каталог, так и всех его родителей.

Список каталогов

Если вы хотите получить содержимое каталога, то можно вызвать метод list() без аргументов. Вам вернётся полный список (массив) имён файлов и каталогов, содержащихся в данном каталоге. Есть ещё похожий метод listFiles(), который возвращает массив файлов (объектов, а не их имён), о котором поговорим отдельно.

Если вам нужен только список файлов с расширением .java, то можно использовать специальный фильтр-класс, который описывает критерии отбора объектов File с помощью интерфейса FilenameFilter.

Интерфейс FilenameFilter определяет единственный метод accept(), вызываемый по одному разу с каждым файлом в списке.

Метод возвращает true для файлов каталога, указанного в dir, которые должны быть включены в список, и false — для файлов, которые следует исключить.

Метод listFiles()

Метод имеет несколько перегруженных версий. Он возвращает список файлов в виде массива объектов класса File. Одна из версий метода также использует интерфейс FilenameFilter. Другая версия использует интерфейс FileFilter и возвращает те файлы, путевые имена которых соответствует интерфейсу.

Пример использования методов класса File показан в уроке Файловый менеджер и в других примерах.

Источник

Работа с файловой системой

Чтение и сохранение файлов

Работа с настройками уровня activity и приложения позволяет сохранить небольшие данные отдельных типов (string, int), но для работы с большими массивами данных, такими как графически файлы, файлы мультимедиа и т.д., нам придется обращаться к файловой системе.

Читайте также:  Крутые лаунчеры для андроида

ОС Android построена на основе Linux. Этот факт находит свое отражение в работе с файлами. Так, в путях к файлам в качестве разграничителя в Linux использует слеш «/», а не обратный слеш «\» (как в Windows). А все названия файлов и каталогов являются регистрозависимыми, то есть «data» это не то же самое, что и «Data».

Приложение Android сохраняет свои данные в каталоге /data/data/ / и, как правило, относительно этого каталога будет идти работа.

Для работы с файлами абстрактный класс android.content.Context определяет ряд методов:

boolean deleteFile (String name) : удаляет определенный файл

String[] fileList () : получает все файлы, которые содержатся в подкаталоге /files в каталоге приложения

File getCacheDir() : получает ссылку на подкаталог cache в каталоге приложения

File getDir(String dirName, int mode) : получает ссылку на подкаталог в каталоге приложения, если такого подкаталога нет, то он создается

File getExternalCacheDir() : получает ссылку на папку /cache внешней файловой системы устройства

File getExternalFilesDir(String type) : получает ссылку на каталог /files внешней файловой системы устройства

File getFileStreamPath(String filename) : возвращает абсолютный путь к файлу в файловой системе

FileInputStream openFileInput(String filename) : открывает файл для чтения

FileOutputStream openFileOutput (String name, int mode) : открывает файл для записи

Все файлы, которые создаются и редактируются в приложении, как правило, хранятся в подкаталоге /files в каталоге приложения.

Для непосредственного чтения и записи файлов применяются также стандартные классы Java из пакета java.io.

Итак, применим функционал чтения-записи файлов в приложении. Пусть у нас будет следующая примитивная разметка layout:

Поле EditText предназначено для ввода текста, а TextView — для вывода ранее сохраненного текста. Для сохранения и восстановления текста добавлены две кнопки.

Теперь в коде Activity пропишем обработчики кнопок с сохранением и чтением файла:

При нажатии на кнопку сохранения будет создаваться поток вывода FileOutputStream fos = openFileOutput(FILE_NAME, MODE_PRIVATE)

В данном случае введенный текст будет сохраняться в файл «content.txt». При этом будет использоваться режим MODE_PRIVATE

Система позволяет создавать файлы с двумя разными режимами:

MODE_PRIVATE : файлы могут быть доступны только владельцу приложения (режим по умолчанию)

MODE_APPEND : данные могут быть добавлены в конец файла

Поэтому в данном случае если файл «content.txt» уже существует, то он будет перезаписан. Если же нам надо было дописать файл, тогда надо было бы использовать режим MODE_APPEND:

Для чтения файла применяется поток ввода FileInputStream :

Подробнее про использование потоков ввода-вывода можно прочитать в руководстве по Java: https://metanit.com/java/tutorial/6.3.php

В итоге после нажатия кнопки сохранения весь текст будет сохранен в файле /data/data/название_пакета/files/content.txt

Где физически находится созданный файл? Чтобы увидеть его на подключенном устройстве перейдем в Android Stud в меню к пункту View -> Tool Windows -> Device File Explorer

После этого откроектся окно Device File Explorer для просмотра файловой системы устройства. И в папке data/data/[название_пакета_приложения]/files мы сможем найти сохраненный файл.

Источник

Оцените статью