2013-06-03 3 views
1

У меня есть файл kanji.xls. Я хотел бы получить этот файл через новый File(); Что я должен писать внутри этого конструктора? Я пробовал много вариантов, но не нашел правильный ответ ...Как получить ссылку на файл внутри пакета

enter image description here

Я пробовал:

  1. /kanji.xls
  2. /Kanji базы данных/kanji.xls
  3. // База данных кандзи // kanji.xls
  4. kanji.xls
+1

Вы можете оставить свой код? – sanbhat

+0

sanbhat весь код \t \t \t \t произведение книга = рабочая тетрадь.загрузкаWorkbook (новый файл ("/ kanji.xls")); Я пытался поместить много вещей в конструктор файлов, и я всегда получаю FileNotFoundException – Marek

ответ

2

Используйте проект assets в своем проекте для того, чтобы сохранить файл и прочитать файл оттуда. Android – Read file from Assets проведет вас.

, если вы не хотите использовать assets каталог,

Создать каталог как Kanji_Database вместо Kanji database. Затем используйте ниже код.

File f= new File(Environment.getExternalStorageDirectory() 
      + "/Android/data/" + getApplicationContext().getPackageName() 
      + "/Kanji_Database/", "kanji.xls"); 
+0

, ваш ответ кажется лучшим, но через активы я могу получить только список файлов или открыть Stream. Как я могу использовать ресурсы для получения пути к файлу, который позже могу использовать в новом файле()? – Marek

+0

Файлы в каталоге 'assets' не распаковываются. Они считываются непосредственно из ZIP-файла APK. Поэтому вам нужно извлечь массив байтов, записать во временный файл и загрузить этот файл. Вы можете использовать 'file: /// android_asset/kanji.xls' для URL-адреса. – Bishan

+0

Я обновил свой ответ. – Bishan

Смежные вопросы