German File.DirInternal + .apk

Heinz

Active Member
Licensed User
Longtime User
Hallo zusammen,
ich habe ein Problem mit einer Textdatei.
Gibt es eine Möglichkeit, daß das Installationpaket
(Meine .apk) die Datendatei direkt in File.DirInternal
und nicht in File.DirAssets installiert ?

Folgender Hintergrund :
Ich gebe mein Programm mit einer Datendatei
weiter. Da ich geänderte Dateiinhalte ja nicht
in File.DirAssets speichern kann, muß ich ja
zwangsweise File.DirInternal oder File.DirInternalCache
verwenden.
Bei der Installation der .apk und Start liest mir das Programm
auch artig in File.DirAssets meine Datendatei. Nun will ich aber
Änderungen der Datendatei (Datensätze in einer .csv) per
Programm machen und auch das ganze wieder speichern.
Da das Programm beim nächsten Start auch wieder die geänderte
Datei lesen soll, dachte ich mir, ich speichere die .csv temporär
in File.DirInternal und kopiere sie anschließend nach File.DirAssets.

Geht aber nicht.

Daher kam ich auf den Gedanken, bei der Installation die .csv
direkt in File.DirInternal zu speichern. Ein File.Copy von DirAssets
nach DirInternal beim Start des Programmes würde ja meine alte
Datei über die neue kopieren. Das soll ja nicht Sinn der Sache sein.

Also würde es Sinn machen, schon beim Installieren die .csv in DirInternal
zu schieben. Bei neuen Programmversionen von mir könnte ich dann
die .csv einfach bei der .apk weglassen. Somit würde auch keine
neuere überschrieben.


Hat da jemand eine Idee oder kann jemand mir auf die Sprünge helfen ?
 

DonManfred

Expert
Licensed User
Longtime User
und nicht in File.DirAssets installiert ?
Gibt es eine Möglichkeit, daß das Installationpaket
(Meine .apk) die Datendatei direkt in File.DirInternal
und nicht in File.DirAssets installiert ?
Kurze Antwort. Nein; so funktioniert Android.
 

pjo12345

Active Member
Licensed User
Longtime User
Kann man nicht im Playstore beim Hochladen der apk eine "externe" Datei mit angeben? Keine Ahnung wo die dann landet aber kann ja sein das es weiterhilft. Habe jetzt nicht nachgesehen, ist mir nur gerade eingefallen.
 

Heinz

Active Member
Licensed User
Longtime User
Ich habe es jetzt mal so gelöst :
Ich frage halt einfach beim Start mit File.Exist() ab, ob in DirInternal
meine Datei existiert. Falls nicht, wird sie einfach von DirAssets nach
DirInternal kopiert. In Assets ist sie ja in jedem Falle bei der Installation
gelandet.
 

specci48

Well-Known Member
Licensed User
Longtime User
Ich habe es jetzt mal so gelöst :
Ich frage halt einfach beim Start mit File.Exist() ab, ob in DirInternal
meine Datei existiert. Falls nicht, wird sie einfach von DirAssets nach
DirInternal kopiert. In Assets ist sie ja in jedem Falle bei der Installation
gelandet.
Genauso habe ich es bisher auch immer gelöst, das funktioniert fehlerfrei.

Bei meinen neuesten Programmen speichere ich mir in der Datei sogar noch so eine Art Versionsdatum, auf das ich separat prüfen kann.
Auf diese Weise kann man z.B. bei Bedarf bei einem Programmupdate das erneute kopieren einmalig durchführen.
 

Heinz

Active Member
Licensed User
Longtime User
Da ein paar Kollegen ein IPhone oder IPad haben :
Könnte ich da auch ein ähnliches Programm in B4J
machen oder geht das nur mit MAC ?

Java müßte doch überall laufen.
Eine Web-App will ich nicht unbedingt.

Da es ein firmeninternes Preislistenprogramm ist, will ich es
auch nicht in einen Market stellen, sondern nur bestimmten
Arbeitskollegen anbieten.

PS : Auch für Windows Phone bräuchte ich was.
 
Top