Показать сообщение отдельно
Старый 05.11.2007, 17:23
NePridymal вне форума Посмотреть профиль Отправить личное сообщение для NePridymal Найти все сообщения от NePridymal
  № 1  
Ответить с цитированием
NePridymal
 
Аватар для NePridymal

Регистрация: Apr 2007
Сообщений: 143
Отправить сообщение для NePridymal с помощью ICQ
По умолчанию Открытие файла по относительной ссылке

Доброго времени суток.

Это не вопрос а совет, основанный на личном опыте. Может кому пригодится (даже точно пригодится).

Итак, возникла у меня необходимость записи в файл, находящийся в подпапке папки, в которую установленно приложение.
По документации это выглядело примерно так:

Код:
  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:/" .


Последний раз редактировалось NePridymal; 05.11.2007 в 17:36.