Доброго времени суток.
Это не вопрос а совет, основанный на личном опыте. Может кому пригодится (даже точно пригодится).
Итак, возникла у меня необходимость записи в файл, находящийся в подпапке папки, в которую установленно приложение.
По документации это выглядело примерно так:
Код:
var file:File = new File();
file.url = "app-resource:/Data/Handler.xml";
trace(file.size) // работает, показывает истинный размер, тоесть файл найден
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTFBytes(xml);
fileStream.close();
(кто не знает - "app-resource:/" - AIR-овский встроенный указатель на папку приложения). Интересно, что первая часть кода работала правильно, но при попытке открытия файла - возникала ошибка "файл не найден". Скорее всего это баг, который к счастью легко решается:
Код:
var tmpFile:File = new File();
tmpFile.url = "app-resource:/";
var file:File = new File();
file.nativePath = String(tmpFile.nativePath) + "\\Data\\Handler.xml";
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTFBytes(xml);
fileStream.close();
Конечно, можно получить тот же еффект при использовании File.applicationResourceDirectory, но этот совет касается именно работы "app-resource:/" .