2011-12-06 84 views
9

搜索1小時後,我找不到解決問題的方法。將文件複製到資產文件夾

我想從SD卡到資產的文件夾移動文件,並覆蓋在資產文件夾中現有的文件(包括文件的SQLite數據庫與數據只是一個小區別同名)

+8

你根本無法刪除或從/資產的文件夾在運行時添加任何東西做任何事情。 – Mudassir

+1

我想從服務器下載sqlite數據庫,然後複製到資產文件夾。 –

+0

我該如何克服這種情況? –

回答

11

其實,Android的.apk文件的行爲是隻讀的,因此這個apk文件中的目錄結構跟着一樣,所以沒有人可以在運行時編寫這些文件或對其進行修改,這就是爲什麼在運行時你不能對/asset folder進行修改。你可以從中讀取文件(複製手段有哪些資產可用於任何internal storage/sdcard文件,但不能把它寫入反之亦然

它適用於所有這些建立的apk文件的目錄。根據文檔。

+0

對不起,同樣的評論,但我需要解決方案:)我有數據庫資產文件夾,也在服務器上,現在我想在服務器上更改數據庫這樣用戶可以得到最新的更新。我可以這樣做嗎?用戶如何獲得該數據庫? - 約翰史密斯7秒前 –

+0

你必須將該數據庫寫入內部存儲或SD卡,(內部存儲是最好的).. – user370305

+0

你能指導我如何做到這一點? –

4

Assets文件夾是不可寫它只是可讀性,以便你不能從sdcard複製到資產,是的,你可以從資產複製到sdcard

+1

沒有downvote。但海報反之亦然。 – Mudassir

+0

我知道http://stackoverflow.com/questions/4447477/android-how-to-copy-files-in-assets-to-sdcard但我的問題是不同的。 –

+1

+1的準確信息。 –

1

如果希望其他應用程序不能訪問你的數據庫,那麼你可以做的是

  1. 從網站上下載的數據庫。在app目錄中創建一個臨時數據庫。
  2. getDatabasePath()這將爲您創建虛擬數據庫的路徑,現在將其替換爲您下載的虛擬數據庫。

PS:用戶具有root訪問權限仍然能夠訪問它的應用程序,你不能在那種情況下

相關問題