Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Mike1991
4 / 4 / 2
Регистрация: 26.08.2013
Сообщений: 18
#1

File.canWrite - Программирование Android

08.03.2018, 22:10. Просмотров 187. Ответов 0

Приветствую всех, уважаемые форумчане!

Недавно столкнулся с проблемой. Имеется телефон Samsung Galaxy S3 Neo со стоковой прошивкой. На данной прошивке у сторонних приложений нет доступа к съёмной SD-карте. Мне в приложении сейчас нужно выполнить проверку, возможна ли запись файлов в какую-то определённую директорию. Делаю так:
Java
1
2
3
4
File f = new File("/storage/extSdCard/folder");
if(f.canWrite()){
    //сообщаем, что запись возможна
}
Проблема в том, что вызов метода canWrite() в данном случае возвращает true. Однако при попытке записи всё же выбрасывается исключение IOException: open failed: EACCES (Permission denied).

Пробовал узнавать права для данной директории через Runtime.getRuntime().exec("ls -ld /storage/extSdCard/folder/"). Результат - drwxrwx--x. Такой же результат, если проверять на запись внутреннюю память (/storage/emulated/0), куда запись из сторонних приложений возможна.

Моя задача - просто проверить возможность записи в какую-либо директорию. Пока единственный выход только - пробовать создавать какой-нибудь пустой файл в ней (если выбрасывается IOException - доступа нет, соответственно; если не выбрасывается - запись возможна, удаляем созданный файл), но это как-то слишком топорно. Возможно, есть какие-то ещё способы проверки директории на возможность записи?

Добавлено через 6 минут
На данной прошивке у сторонних приложений нет доступа к съёмной SD-карте.
Я немного оговорился - нет возможности записи на съёмную SD-карту у сторонних приложений.

Добавлено через 11 часов 23 минуты
Забавно, если проверить права на запись в /storage/extSdCard через JNI, используя метод access из библиотеки unistd.h, то запись тоже вроде как разрешена (access("/storage/extSdCard", W_OK) возвращает 0). Однако если пытаешься открыть файл для записи, возвращается EACCES.

Добавлено через 17 секунд
Забавно, если проверить права на запись в /storage/extSdCard через JNI, используя метод access из библиотеки unistd.h, то запись тоже вроде как разрешена (access("/storage/extSdCard", W_OK) возвращает 0). Однако если пытаешься открыть файл для записи, возвращается EACCES.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2018, 22:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос File.canWrite (Программирование Android):

Error opening trace file no such file or directory (2)
Наткнулся на исходники эмулятора nes, после выбора файла эмуляции .nes,...

Ошибка "Error opening trace file: No such file or directory (2)"
пару часов назад прога работала включил комп перестала пишет такую ошибку...

Caused by: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: Error inflating class
Caused by: android.view.InflateException: Binary XML file line #13: Binary XML...

Ini file
public class IniReader { private Properties iniFile; private String...

File Encodings
Игрался с кодировками в коде. Поставил какую ту кодировку ,и теперь код в...

Не находит expansion file
Здравствуйте! В приложении есть большое количество картинок и аудио. На этапе...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2018, 22:10
Привет! Вот еще темы с решениями:

Open file dialog
доброго времени. вопрос простой - как сделать (вызвать, если уже есть такой)...

Чтение строк из file.txt
Здравствуйте. Помогите, пожалуйста, с чтением данных из текстового файла....

Файл расширения (Expansion File)
Есть приложение, где используется Expansion File. При загрузке приложения файл...

Ошибка инициализации List<File>
Проблема с инициализацией Error:(1575, 9) error: variable mapFiles might not...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru