Изменить атрибут файла андроид

Правильная работа с файлами в Android

Сегодня я бы хотел рассказать вам о правильной работе с файлами в ОС Android. Итак, чаще всего у новичков возникают ситуации, когда обычные Java функции не могут корректно создать тот или иной файл в системе Android.
Во-первых, вам нужно обратить внимание на интересную особенность ОС:
когда вы устанавливаете apk приложение в эмулятор или телефон, система Linux (на которой базируется ядро Android) выделяет ему специальный User-ID, который является неким ключом доступа к (sandbox). То есть другие приложения в телефоне не смогут получить доступ к чтению файлов вашего приложения просто так. Кончено, всё это сделано в целях безопасности.
В общем, если вы запустите следующий код:

FileWriter f = new FileWriter(«impossible.txt»);

То этот код вызовет исключение: ‘java.io.FileNotFoundException: /impossible.txt ‘
Тогда как должен в случае отсутствия файла создать его.

Далее стоит отметить, что данное ограничение не распространяется на файлы, записываемые на SDCard. Туда можно писать любые файлы без всяких проблем, правда предварительно нужно добавить в AndroidManifest разрешение на запись:

Код файла на карту:

File fileName = null;
String sdState = android.os.Environment.getExternalStorageState();
if (sdState.equals(android.os.Environment.MEDIA_MOUNTED)) <
File sdDir = android.os.Environment.getExternalStorageDirectory();
fileName = new File(sdDir, «cache/primer.txt»);
> else <
fileName = context.getCacheDir();
>
if (!fileName.exists())
fileName.mkdirs();
try <
FileWriter f = new FileWriter(fileName);
f.write(«hello world»);
f.flush();
f.close();
> catch (Exception e) <

>

Как уже ранее было сказано мною, android приложение находится в некой песочнице, изолированной от воздействия со стороны других приложений по умолчанию. Для того, чтобы создать файл внутри этой песочницы, следует использовать функцию openFileOutput(). Хочу отметить 2 аргумента:

1. имя файла
2. режим доступа к нему со стороны чужих приложений

С первым аргументом все ясно, что касается второго, то режимов существует два: MODE_WORLD_READABLE и/или MODE_WORLD_WRITEABLE.

И ещё, чтобы записать файл можно использовать следующий код:

final String TESTSTRING = new String(«Hello Android»);
FileOutputStream fOut = openFileOutput(«samplefile.txt», MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
// записываем строку в файл
osw.write(TESTSTRING);
/* проверяем, что все действительно записалось и закрываем файл */
osw.flush();
osw.close();

Для чтения файлов используется метод openFileInput():

FileInputStream fIn = openFileInput(«samplefile.txt»);
InputStreamReader isr = new InputStreamReader(fIn);
char[] inputBuffer = new char[TESTSTRING.length()];
isr.read(inputBuffer);
String readString = new String(inputBuffer);

Для удаления используется метод deleteFile() в контексте приложения/активити. На этом я бы хотел закончить полезный пост, спасибо за внимание!

Источник

Права доступа (permission) в Android

Одним из интереснейших методов безопасности операционной системы Андроид является система разрешений (permissions), используемых приложениями. Когда OS ANDROID только появилась, её разработчики придумали – выделить все возможные функции, доступ к которым необходим приложению, и позволить пользователю их контролировать. Было это реализовано довольно интересно. Список возможных разрешений создан разработчиками Google и зафиксирован в документации. Он очень гибкий, в нем есть всё, что нужно для обеспечения какого угодно сложного функционала. Вместе с тем он грамотно разграничен.

Например, если программа работает с СМС, то ему можно дать права только на чтение сообщений, или только на их отправку, или только на уведомление о событии, которое связано с СМС. Это разграничение очень хорошо позволяет избегать злоупотребления привилегиями со стороны приложений. Ещё во время создания программы разработчик выделяет все функции, которые потребуются его программе. Этот список прописывается в файле AndroidManifest.xml, который на этапе сборки программы помещается в его APK-файл. Когда пользователь Андроид устройства будет устанавливать очередное приложение, то вышеупомянутый список, заданный его создателем, будет отображаться на экране. И только после того, как пользователь согласится дать все эти права устанавливаемому приложению, оно будет установлено. Считается, что именно на этом этапе большинство пользователей избежит вирусов, заподозрив программу в плохом поведении и отклонив установку.

Читайте также:  Spongebob patty pursuit android

С технической точки зрения, обойти существующий механизм прав доступа приложений к функциональности системы Андроид очень непросто. Так как менеджмент разрешений осуществляется на самом низком уровне ядром Linux, программе обязательно нужны права рут , чтобы повлиять на это. Хорошо формализованная система permissions облегчает реализацию инструментов безопасности сторонними разработчиками. Перспективным направлением является создание программ, которые позволяют пользователям тонко настраивать права доступа каждого отдельного приложения, предотвращая любые утечки информации с устройства.

Права доступа (permission) на папки и файлы в Андроид

Права доступа разделяются на две группы зто:
1.Права доступа к файлам
2.Права доступа к папке (директории)

Права доступа к файлам могут иметь такие атрибуты:
r — право на чтение данных. (read)
w — право на изменение содержимого или запись, но не удаление. (write)
x — право на исполнение файла. (xxxxxx)

Права доступа к папке (директории):
r — право на чтение папки (директории).
w — право на изменение содержимого директории можно создавать и удалять объекты в этой директории.
x — право, которое позволяет вам войти в директорию.

Сами права доступа подразделяются на три категории:
«user» — u владелец файла.
«group» — g член той же группы, к которой принадлежит владелец.
«world» — o все остальные.

Порядок записи прав доступа:
сначала права для владельца — «u»
затем для группы — «g»
и в конце права для всех остальных — «o»

Например: предположим что у вас на работе есть компьютер, вы его владелец, он состоит в локальной сети (группа) а есть пользователи, которые хотят что либо на вашем компьютере сделать. По всем этим категориям задаются права на файлы и папки в виде RWX которые дают какие либо права на выполнение чего либо, если в заданных правах RWX присутствует знак «-» то это означает что право отсутствует.
Например: rwx r— r— означает что владелец файла имеет все права: право на чтение, запись в него и исполнение, а все остальные пользователи только право на чтение.

Помимо буквенных выражений есть числовые выражения:
r — (читать) это 4
w (запись) это 2
x (исполнение) это 1
«» ничего не делать тоесть знак дефиса, 0
И их сумма означает конечные права
7 (rwx) = 4 + 2 +1 (полные права)
5 (r-x)= 4 + 0 + 1 (чтение и выполнение)
6 (rw-) = 4 + 2 + 0 (чтение и запись)
4 (r—) =4 + 0 + 0 (только чтение)

Часто используемые параметры:
400 (-r———) — владелец будет иметь право чтения, никто кроме него не имеет права выполнять никакие действия.
644 (-rw-r—r—) — все пользователи имеют право чтения, а владелец может редактировать.
660 (-rw-rw—-) — владелец и группа могут читать и редактировать, все остальные не имеют никаких прав.
664 (-rw-rw-r—) — все пользователи имеют право чтения, а владелец и группа могут редактировать.
666 (-rw-rw-rw-) — все пользователи могут читать и редактировать.
700 (-rwx——) — владелец может читать, записывать и запускать на выполнение, у других нет права выполнять никакие действия.
744 (-rwxr—r—) — все пользователи могут читать, а владелец имеет право редактировать и запускать на выполнение.
755 (-rwxr-xr-x) — каждый пользователь может читать и запускать на выполнение, владелец может редактировать.
777 (-rwxrwxrwx) — каждый пользователь может читать, редактировать и запускать на выполнение.
sudo passwd root — пароль суперпользователя root.

Читайте также:  Чекаем логи с андроида

Здесь представлен онлайн калькулятор , и программа которая может задавать права на файл Root Explorer
Бывает что права состоят из 4х цифр это означает что помимо владельца, группы, остальных есть еще и SUPERUser (Супер Админ)
тогда список будет выглядеть вот так:
«SuperUser» — SuperUser
«user» — u владелец файла
«group» — g член той же группы, к которой принадлежит владелец
«world» — o все остальные

Источник

Как пользоваться программой Total Commander на Андроид

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

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

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

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

Для копирования/перемещения файлов с одной папки в другую, необходимо выполнить следующие действия. В левом окне находим папку с нужным нам файлом. В правом окне открываем ту папку, в которую хотим скопировать/переместить файл. Возвращаемся к левому окну, находим файл и нажимаем на его иконку. Она будет отмечена зелёной галочкой, после чего нажимаем на вторую иконку в нижней части экрана (с синей стрелкой). В появившемся окне будет указан путь, по которому будет скопирован/перемещён файл, выбираем [Копировать], либо [Переместить], в зависимости от необходимого нам действия. Начнётся процесс копирования/перемещения, после чего в правом окне появится ранее выбранный файл.

Для удаления файла (нескольких файлов) нужно сначала найти перейти в папку, где он находится, после чего отметить файл, нажав на иконку. Теперь необходимо нажать на четвертую снизу иконку (красный лист с крестиком) и в появившемся окне нажать [Да], подтвердив удаление выбранных файлов. Также удалить файл можно просто нажав на него и удерживания палец в течение нескольких секунд, дождаться появления контекстного окна, в котором нужно выбрать [Удалить].

Читайте также:  Навигатор сити гид для андроида с картами

Программа позволяет не только просматривать файлы текстовые файлы в формате .txt, но и редактировать их. Находим нужный файл и удерживаем на нём палец до появления контекстного меню, в котором нужно выбрать [Редактировать файл]. Текстовый документ будет открыт через встроенный редактор, либо вам будет предложены альтернативные варианты при их наличии.

Как и многие файловые менеджеры Total Commander позволяет просматривать архивы, создавать и извлекать их.

Первым делом нужно открыть папку, где располагаются файлы, которые вы хотите заархивировать. Выделяем файлы, отметив их галочками, после чего нажимаем на третью иконку снизу (жёлтый квадрат). В открывшемся окне можно выбрать путь, по которому будет сохранён архив, а также поменять его имя, после чего нажимаем на кнопку [Упаковать].

Допустим у вас есть файл с расширением .rar или .zip, вам необходимо узнать, что внутри архива. Для этого достаточно нажать на название файла, и программа отобразит всё содержимое архива.

Открываем папку в которой находится файл с расширением .zip или .rar. Нажимаем на название архива и попадем в него, вы увидите все файлы, которые содержатся в архиве. Отмечаем нужные нам файлы галочками, после чего нажимаем на кнопку «Копировать». В открывшемся окне указываем путь, куда будут извлечены файлы.

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

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

Плагин, который позволит подключиться к вашим FTP-серверам. Для работы с данным плагином необходимо выполнить несколько простейших действий:
Нажимаем [Новое соединение], вводим его название и после указываем имя сервера, порт, имя пользователя и пароль. После чего произойдет подключение к серверу, и вы сможете просматривать все файлы, хранящиеся на нём и редактировать с помощью встроенных в файловый менеджер инструментов.

Плеер, встроенный в файловый менеджер позволит проигрывать все форматы, которые изначально поддерживает ОС Android. К плюсам стоит отнести наличие эквалайзера с заготовленными пресетами, а также усиление низких частот.

Если у вас есть права суперпользователя, то в настройках приложения можно активировать дополнительные функции. К примеру, вы сможете редактировать системные файлы, а также менять их разрешения (чтение, запись, удаление). Для активации ROOT-прав необходимо: открыть приложение – нажать на троеточие в правом верхнем углу — выбрать настройки и затем поставить галочку напротив пункта [функции root везде].

Total Commander является весьма функциональным файловым менеджером. Выглядит он не очень стильно, но масса возможностей и огромный набор инструментов делают его одним из лучших в своём роде.

Источник

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