2015-09-01 72 views
0

我需要添加一個配置文本文件到我的android應用程序。這個文件需要用C庫本地訪問。所以我需要傳遞文件夾的絕對路徑,即(/ data/data /(包名)/ files)。如何將文件包含到Android應用程序的內部存儲?

我考慮將其放入資源或資產。但他們似乎沒有辦法獲得資源和資產文件夾的絕對路徑。資產中的文件似乎也在壓縮的apk文件中,因此在c中原生訪問它時會出現問題。

我在哪裏可以放置一個文件在我的項目文件夾,以便它可以放在應用程序的內部存儲目錄?

回答

0

你可以把你的文件放在res/raw中。更多細節here

更新

後放置在原始文件夾中文件,可以使用Android代碼使用openRawResourceFd()得到文件描述符。然後將其傳遞給本地代碼,如描述here

+0

我如何獲得res/raw文件的絕對路徑?我沒有使用R.在Java中訪問它需要通過文件路徑在c中訪問它。 – tamy

+0

@tamy我編輯了我的答案。 –

0

您需要借用(並修改)從資產解壓縮文件的代碼。 當您的應用程序啓動時,它會檢查文件是否已經存在,如果沒有,請從資產中解壓文件。

請參閱How to copy files from 'assets' folder to sdcard?

+0

我想過這樣做,但有沒有更有效的方法?這只是將文件從資產複製到內部存儲,有效地擁有同一文件的兩個副本。最好在安裝時將文件放在那裏。如果沒有更好的解決方案,我會這樣做。 – tamy

+0

您將擁有一個打包的未修改副本和一個可能已修改的配置文件副本。當然,如果你不需要修改它,就可以找出apk的位置並將它傳遞給C代碼,並從C代碼中讀取歸檔文件....讀取它的代碼可能需要更多空間比配置文件本身。 – 18446744073709551615

相關問題