2011-12-06 15 views
9

Po przeszukiwaniu 1 godziny nie znalazłem żadnego rozwiązania mojego problemu.Skopiuj plik do folderu zasobów

Chcę przenieść plik z folderu sdcard do aktywów, a także zastąpić istniejący plik w folderze aktywów (zarówno w pliku bazy danych SQLite jest mieć taką samą nazwę tylko z niewielkiej różnicy danych)

?? Folder

+8

Po prostu nie można usunąć lub dodać coś od/do folderu aktywów przy starcie. – Mudassir

+1

Chcę pobrać bazę danych sqlite z serwera, a następnie skopiować do folderu zasobów. –

+0

jak mogę przezwyciężyć tę sytuację? –

Odpowiedz

11

Właściwie zachowanie android pliku apk jest tylko do odczytu, więc struktura katalogów, które znajdują się w tym pliku APK, podąża za tym samym, Więc nikt nie może zapisywać tych plików lub wprowadzać w nich zmian w czasie wykonywania, dlatego nie można wprowadzać zmian w /asset folder w środowisku wykonawczym. można odczytać pliku z nim (czyli kopiowanie plików, które są dostępne w nabytkiem dla każdego internal storage lub /sdcardale nie pisać go odwrotnie)

Jego zastosowanie na wszystkich katalogów, które są budowane w plikach apk. Zgodnie z dokumentami.

+0

Przepraszam ten sam komentarz, ale potrzebuję rozwiązania :) Mam bazę danych w folderze aktywów, a także na serwerze teraz chcę zmienić bazę danych później na serwerze aby użytkownik mógł uzyskać najnowszą aktualizację. Jak mogę to zrobić? W jaki sposób użytkownik uzyska tę bazę danych? - John Smith 7 sekund temu –

+0

Musisz zapisać tę bazę danych do pamięci wewnętrznej lub na sdcard, (Preferowana jest pamięć wewnętrzna) .. – user370305

+0

możesz mi wskazać, jak to zrobić? –

4

aktywa nie są zapisywalny to tylko czytelny więc nie można skopiować z sdcard aktywów, tak można skopiować z aktywów sdcard

+1

Bez dochodzenia. Ale plakat chce vice versa. – Mudassir

+0

Wiem, że http://stackoverflow.com/questions/4447477/android-how-to-copy-files-in-assets-to-sdcard, ale mój problem jest inny. –

+1

+1 dla dokładnych informacji. –

1

Jeśli chcesz inne aplikacje nie do dostępu do bazy danych, to co można zrobić, to

  1. Pobierz bazę danych ze strony internetowej. utwórz tymczasową bazę danych również w katalogu aplikacji.
  2. getDatabasePath() to da ci ścieżkę utworzonej przez ciebie sztucznej bazy danych, którą teraz zastąp, tą, którą pobrałeś.

PS .: użytkownika i aplikacje mające dostęp roota nadal w stanie uzyskać do niego dostęp i nie mogę nic zrobić w tym scenariuszu

Powiązane problemy