playbook: создайте новую папку и сохраните некоторые данные
Мне нужно создать новую папку и сохранить в ней некоторые данные. Код выглядит следующим образом:
var list:Array=reader.getEntries();
for(var i:uint=0;i < list.length;i++)
{
var bytes:ByteArray=reader.unzip(list[i]);
var fileStream:FileStream=new FileStream();
fileStream.open(dir.resolvePath( list[i].getFilename() ),FileMode.WRITE);
fileStream.writeBytes(bytes,0,bytes.length);
}
fileStream.close();
Код ниже предназначен для создания каталога dir:
dir=File.applicationStorageDirectory.resolvePath(dirname);
dir.createDirectory();
Но всякий раз, когда я запускаю этот код, я получаю это
Ошибка № 3001: доступ к файлу или каталогу запрещен.
Я дал необходимые разрешения в blackberry_tablet.xml, т.е. access_shared.
PS Я использую coltware_airxzip.swf для извлечения файлов из zip-архива, который я храню в списке массивов.
1 ответ
Я знаю, что вы сказали, что проверили разрешения, но я бы проверил их еще раз. Также проверьте каталог и значение имени файла и убедитесь, что он не содержит недопустимых символов имени файла. Например, имя файла, подобное этому, ")%@*)!~-`.txt" может вызвать ошибки.
Также убедитесь, что пользователь не отключил разрешения приложений (это не должно быть проблемой при разработке).
Чтобы исключить возможность, это библиотека zip, посмотрите, можете ли вы создать простые записи в файле:
for(var i:int;i < 5;i++)
{
var fileStream:FileStream = new FileStream();
var file:File = File.applicationStorageDirectory.resolvePath( "test_"+i+".txt" );
// if in directory attempt to create it first - something like this for the directory
// file = !file.exists ? file.createDirectory() : file;
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTFBytes("test data");
fileStream.close();
// if space available is not 0 then that is good indication file was created or saved
// of course so is file.exists
trace("file exists = " +file.exists);
trace("Space available = " +file.spaceAvailable);
}
Примечание. У меня сейчас та же проблема, за исключением сообщения об ошибке. Это говорит, что файл и каталог созданы и показывает собственный путь как это:
/accounts/1000/appdata/MyApplication.debug.testDev_Maker_debug533b7b57/data/MyApplication/file_1.txt
и путь хранения приложения как:
app-storage:/MyApplication/file_1.txt
Однако я не могу найти файл ни в AIR Browser, ни в RIM File Manager. Так что я не уверен, в чем проблема, но я думаю, что это может быть из-за того, что он не пишет, потому что он находится в режиме отладки. Я смогу предоставить подтверждение, как только оно будет выпущено.