Zurück   Flashforum > Flex und AIR > Adobe AIR

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-08-2009, 20:29   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 7
Air + Datei editieren

Hallo Leute
Ich hab ein großes Problem in meiner AIR Applikation. Und zwar öffne ich über FileStream eine XML Datei. In der XML sind verschiedene Definitionen, die mir in der Programmierung Schalter generieren, mit denen ich mir dann ein Bedienpanel zusammenbaue. Der Sinn an der XML Datei ist, das ich nur die XML Datei per Hand ändere, sprich neue Schalter anlege etc., und damit ein neues Bedienpanel erzeugen kann.

An sich hat das mit dem generieren der Schalter auch alles funktioniert. Da FileStream eine AIR Komponente ist, habe ich eine AIR Applikation erstellt und die betreffende XML Datei mit eingebunden. Und da fängt das Problem an. Wenn ich die AIR Applikation installiere, kann ich die XML Datei im Verzeichnis nicht per TextEditor mehr editieren. Er sagt dann nur Zugriff verweigert. Diesen Zugriff brauch ich aber, da darauf mein Konzept der Programmierung beruht.

Hat jemand zufällig eine Idee woran das liegt und ob sich das irgendwie beheben oder umgehen lässt? Ich wär euch echt dankbar.

Viele Grüße, Michael
Michael1985 ist offline   Mit Zitat antworten
Alt 10-08-2009, 20:39   #2 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 148
hi,
schau mal nach

File.applicationDirectory

dort kannst du files speichern, die auch bearbeitet werden können
sytch ist offline   Mit Zitat antworten
Alt 10-08-2009, 20:43   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 7
Ích hab mit folgendem Code die Datei geladen:

Code:
file = File.applicationDirectory.resolvePath("beispielXML.xml");
Mit dem Code speicher ich dann die Datei:

Code:
var applicationDirectoryPath:File = File.applicationDirectory;
var nativePathToApplicationDirectory:String = applicationDirectoryPath.nativePath.toString();
nativePathToApplicationDirectory += "/beispielXML.xml";
var file:File = new File(nativePathToApplicationDirectory);
Soweit ich das verstanden habe, kann ich dann auf die Datei im aktuellen Verzeichnis zugreifen. Das komische ist, wenn ich aus Flash heraus auf die Datei zugreife geht es anstandslos. Die SWF macht Mist und aus AIR kann cih nicht drauf zugreifen.
Michael1985 ist offline   Mit Zitat antworten
Alt 11-08-2009, 09:59   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 148
sorry, hab mich geirrt....

# File.applicationStorageDirectory—a storage directory unique to each installed AIR application
# File.applicationDirectory—the read-only directory where the application is installed (along with any installed assets)
sytch ist offline   Mit Zitat antworten
Alt 11-08-2009, 10:04   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 7
Wo genau liegen die Dateien dann wenn ich nach applicationStorageDirectory speicher? Ich hätte sie halt am Liebsten direkt im Installer Package integriert, so dass er beim Instalieren der AIR Anwendung ein Verzeichnis mit der Datei erstellt. Diese Datei sollte im installierten Ordner liegen. Und das klappt irgendwie nicht, egal ob ich applicationStorageDirectory oder applicationDirectory, wobei letzteres ja nur zum Lesen ist wie du sagst.
Michael1985 ist offline   Mit Zitat antworten
Alt 11-08-2009, 12:52   #6 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 148
hmm, auf dem MAC unter User/Library/Preferences/NameDerApplikation

windows unter dokumente und einstellungen/user/lokale einstellungen/........ irgendwo
sytch ist offline   Mit Zitat antworten
Alt 11-08-2009, 13:20   #7 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 7
Wenn ich das richtig verstehe, gibt es keine Möglichkeit direkt in das installierte AIR Verzeichnis zu schreiben oder seh ich die Lösung nicht? Das applicationStorageDirectory ist ja dann unter meinem User angelegt und nicht im Installationspfad. Oder sytch? Dann kann ich ja praktisch keine XML Datei mit der Anwendung zusammen ausliefern, die der User dann per Hand an seine Bedürfnisse anpassen kann, und die dann in der Programmierung Schalter erzeugt?
Michael1985 ist offline   Mit Zitat antworten
Alt 11-08-2009, 13:29   #8 (permalink)
Neuer User
 
Registriert seit: Oct 2008
Beiträge: 148
nein, das geht nicht im applicationDirectory....
ausser die applikation selber editiert die xml ;-)
was für den benuzter auch ein mehrwert wäre....

allerdings kannst du ja eine "initiale xml" beim ersten start der applikation erstellen. dann könntest du sogar noch einen dateipfad auswählen lassen, damit der user die datei nicht irgendwo in den unterordner des betriebssystems suchen muss....

sprich du speicherst eine Variable im EncrytedLocalStore mit dem pfad zur datei... beim start überprüfst du ob dieser pfad/variable gesetzt ist (EncryptedLocalStore.getItem(....)), und ob die datei auch existiert(File.exists()). wenn nicht, erstellst du die datei aus AIR heraus in einem ausgewählten verzeichnis (File.browseForDirectory, File.writeUTFBytes(...) zb.)
wenn die datei dann beim erneuten start angelegt ist, kann der user die datei von dort aus editieren wo er zuvor die datei gespeichert hatte....

wäre auch noch denkbar ;-)
sytch ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele