AIR: securityError в OSX (но не в Windows) с URLStream()

Я использую URLStream для загрузки файла с жесткого диска (и я хотел бы продолжать использовать URLStream для этого). Файл находится в "app-storage:/myfolder/myFile.zip"

поэтому я использую

var f:File = new File("app-storage:/myfolder/myFile.zip");
myStream.load(new URLRequest(f.nativePath));

в Windows это, кажется, работает без проблем - но в OS X URLStream отправляет SecurityErrorEvent.SECURITY_ERROR с сообщением:

Error #2032: Stream Error. URL: app:/Users/myUserName/Library/Preferences/MyAppName/Local%20Store/myfolder/myFile.zip

Может кто-нибудь объяснить мне, почему это работает на Windows, но не на OS X и как решить эту проблему?

1 ответ

Старый добрый, неоднозначная ошибка 2032!

Вы можете попробовать:

var f:File = new File(File.applicationStorageDirectory + "/myFolder/myFile.zip");

РЕДАКТИРОВАТЬ

Мой оригинальный комментарий должен был использовать File.applicationStorageDirectory собственность, и я все еще думаю, что это хорошая идея. Но похоже, что это свойство сводится к той же строке, которую вы используете... так что, возможно, проблема в том, что местоположение директории хранилища изменилось, а искомый файл все еще находится в исходном месте? Смотрите ссылку ниже.

Конец Править

Обратите внимание на комментарий здесь об изменениях, внесенных в этот путь только в Air 3.3 для Mac OSX. Даже если это не решит вашу проблему, использование этого свойства должно оградить ваш код от будущих проблем, если путь изменится или потребуется другая "схема" для какого-либо другого устройства / ОС.

Другие вопросы по тегам