#java #blackberry #java-me #filesystems #directory
#java #ежевика #java-me #файловые системы #каталог
Вопрос:
В моем приложении мне нужно сохранить некоторый файл (pdf) в файловой системе. Мой текущий метод включает в себя создание каталога для хранения файлов:
FileConnection fc = (FileConnection)Connector.open("file:///SDCard/BlackBerry/pdfs/");
if (!fc.exists())
fc.mkdir();
fc.close();
Затем я записываю в каталог свой файл:
fc = (FileConnection)Connector.open("file:///SDCard/BlackBerry/pdfs/" filename, Connector.READ_WRITE);
if (!fc.exists())
fc.create();
OutputStream outStream = fc.openOutputStream();
outStream.write(pdf);
outStream.close();
fc.close();
Все это работает нормально, и мой PDF-файл попадает в созданный мной каталог. Мой вопрос: возникнут ли у меня проблемы с тем фактом, что я жестко закодировал путь к файлу в качестве места назначения для сохранения.С помощью BlackBerry API возможно ли получить доступную для записи папку, которая существует во всех моделях / конфигурациях?
Ответ №1:
Вы можете запросить у системы доступные корни с помощью FileSystemRegistry.listRoots()
. Обратите внимание, что не гарантируется наличие SD-карты или то, что она будет видна, даже если она есть (например, в режиме массового хранения). Я думаю, что единственным корнем, который гарантированно будет на всех устройствах, является внутренняя память ( "file:///Store"
).
Здесь (немного) больше информации.
Комментарии:
1. Я также не думаю, что папка «BlackBerry» существует на всех. Иногда это выдает ошибку и вместо этого ожидает «blackberry».