Хранение / сохранение XML в локальной папке активов в AIR - PullRequest
0 голосов
/ 25 января 2012

AIR, как правило, хранит XML-файл по пути, в котором установлено приложение.Я создаю XML-файл и хочу сохранить / сохранить XML-файл в локальной папке ресурсов приложения AIR.

Есть мысли о том, как это сделать.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Класс File имеет несколько статических переменных, которые указывают на локальные каталоги:

Из документов:

  • File.applicationStorageDirectory - каталог хранилища, уникальный для каждого установленного приложения AIR
  • File.applicationDirectory - каталог только для чтения, в который установлено приложение (вместе со всеми установленными ресурсами)
  • File.desktopDirectory - каталог рабочего стола пользователя
  • File.documentsDirectory - каталог документов пользователя
  • File.userDirectory - каталог пользователя

Создание указателя на файл

Обычно вы хотите хранить такие файлы в File.applicationStorageDirectory. Итак, для создания файла сделайте:

File.applicationStorageDirectory.resolvePath("my-config.xml");

В качестве альтернативы, вы можете позволить пользователю выбирать, где хранить файл, используя File # browseForSave () , который будет отображать собственное окно сохранения для выбора местоположения.

Написание содержания

Откройте FileStream для файла в режиме записи и запишите в файл строку XML.

var fs:FileStream = new FileStream();
fs.open(file, FileMode.WRITE);
fs.writeUTF(myXmlContent);
fs.close();
0 голосов
/ 27 января 2012

посмотрите на http://www.adobe.com/devnet/air/flex/quickstart/articles/xml_prefs.html

http://www.thetechlabs.com/xml/how-to-build-a-contact-manager-in-air-using-xml-part-2/

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html

var prefsFile:File = File.applicationStorageDirectory;
prefsFile = prefsFile.resolvePath("preferences.xml");
stream = new FileStream();
stream.open(prefsFile, FileMode.WRITE);
stream.writeUTFBytes(outputStringXML);

Или что-то вроде:

var saveStr:String = xmlToSave.toXMLString();
var file:File = new File('app-storage:/data.xml');
var fs:FileStream = new FileStream();
fs.open(file, FileMode.WRITE);    
fs.writeUTFBytes(saveStr);
fs.close();
...