Как избежать фрагментации при сохранении файлов в файловой системе BlackBerry. Лучшая практика?

#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».